আপনার কাজ সহজ। এমন একটি প্রোগ্রাম লিখুন যা সংকলিত বা রান করার সময় অবশ্যই প্রথম নজরে একটি ত্রুটি তৈরি করবে, তবে অন্য কোনও সম্পর্কযুক্ত ত্রুটি হয় না বা তৈরি করে না। এটি জনপ্রিয়তার প্রতিযোগিতা, তাই সৃজনশীল হন।
আপনার কাজ সহজ। এমন একটি প্রোগ্রাম লিখুন যা সংকলিত বা রান করার সময় অবশ্যই প্রথম নজরে একটি ত্রুটি তৈরি করবে, তবে অন্য কোনও সম্পর্কযুক্ত ত্রুটি হয় না বা তৈরি করে না। এটি জনপ্রিয়তার প্রতিযোগিতা, তাই সৃজনশীল হন।
উত্তর:
নিশ্চিত হয়ে নিন যে আপনি নীচের কোডটি স্ট্যান্ডার্ড কনফর্মিং মোডে সংকলন করেছেন (উদাহরণস্বরূপ, জি ++ এর জন্য -ansi পতাকা ব্যবহার করুন):
int main()
{
// why doesn't the following line give a type mismatch error??/
return "success!";
}
কিভাবে এটা কাজ করে:
?? / একটি ট্রাইগ্রাফ ক্রম যা ব্যাকস্ল্যাশ-এ অনুবাদ করা হয় যা নিম্নলিখিত নিউলাইনটি থেকে দূরে থাকে, সুতরাং পরবর্তী লাইনটি এখনও মন্তব্যের অংশ এবং সুতরাং একটি সিনট্যাক্স ত্রুটি তৈরি করবে না। নোট করুন যে সি ++ এ, রিটার্নটিকে বাদ দেওয়া
main
ভালভাবে সংজ্ঞায়িত হয়েছে এবং 0 ফেরত দেওয়ার সমতুল্য, একটি সফল রান ইঙ্গিত করে।
সর্বদা এটির একজন অনুরাগী।
x = x
কোন NameError
। এক্স এখন হয় nil
।
এটি রুবির কেবলমাত্র একটি "বৈশিষ্ট্য" :-)
এখানে আরও জাগ্রত একটি যা আমাকে অর্জন করেছে:
x = 42
if x < 0
raise Exception, "no negatives please"
elseif x == 42
raise Exception, "ah! the meaning of life"
else
p 'nothing to see here...'
end
"এখানে দেখার মতো কিছুই নেই" মুদ্রণ করে।
এটা elsif না elseif । (এবং এটি অবশ্যই এলিফ নয় - প্রচ্ছন্ন পাইথন প্রোগ্রামার (আমার) এর জন্য ধিক্কার !) সুতরাং অনুবাদকের কাছে অন্যরকম দেখতে সাধারণ পদ্ধতি কল হিসাবে দেখা যাচ্ছে, এবং যেহেতু আমরা x <0 ব্লকে প্রবেশ করি না, আমরা সরাসরি অন্য দিকে চলে যাই এবং একটি ব্যতিক্রম বাড়াবেন না। এই বাগটি কোনও সিনট্যাক্স-হাইলাইটিং এনভায়রনমেন্টে অবিশ্বাস্যভাবে সুস্পষ্ট, ধন্যবাদ (?) কোড গল্ফ এরকম পরিবেশ নয়।
এখানে খুব সাধারণ কোড ...
void main() = main--;
এটি হাস্কেল, সি নয়, এটি "অকার্যকর" নামের একটি ফাংশন সংজ্ঞায়িত করে যা দুটি যুক্তি গ্রহণ করে। প্রথমটির নাম দেওয়া হয়েছে "প্রধান" এবং দ্বিতীয়টি (নামবিহীন) যদি খালি টিপল হয় তবে এটি "মূল" ভেরিয়েবলটি দেয়। "-" হাস্কেলতে একটি মন্তব্য শুরু করে, তাই ";" মন্তব্য করা হয়।
var а = 100;
if (typeof a !== 'undefined') throw 'This should always throw, right?';
console.log('How am I still alive?');
এখানে কিভাবে এটা কাজ করে:
প্রথমটি
a
হ'ল একটিа
(যা ক্রিলিক ইউনিকোড "এ")।
আমি যখন নিম্নলিখিত কোডটি সরবরাহ করছিলাম তখন আমাকে অনেকবার বলা হয়েছিল "এটি অবশ্যই একটি টাইপো হবে! এটি কীভাবে কাজ করতে পারে?" ।
console.log( 42..toString(2) );
নীচের বিবরণটি সাম্প্রতিক একটি ক্ষেত্রে থেকে ঠিক অনুলিপি করা হয়েছিল ।
আপনি সম্ভবত জানেন যে, জাভাস্ক্রিপ্টে আক্ষরিক ব্যতীত সমস্ত কিছুই একটি অবজেক্ট। সংখ্যা পাশাপাশি বস্তু হয়। সুতরাং তাত্ত্বিকভাবে (এবং ব্যবহারিকভাবে) আপনি ডট নোটেশনের মাধ্যমে কোনও অ-আক্ষরিকের সম্পত্তি বা কল পদ্ধতিগুলি পেতে পারেন যেমন আপনি করেন
'string'.length
বা করেন[1,2,3].pop()
। সংখ্যার ক্ষেত্রে আপনিও একই কাজ করতে পারেন তবে আপনার মনে রাখতে হবে যে একটি ডট পরে পার্সার একটি ভাসমান মান (যেমন হিসাবে123.45
) প্রত্যাশা করে সংখ্যার একটি ভগ্নাংশের অংশ সন্ধান করবে । আপনি একটি পূর্ণসংখ্যা ব্যবহার করেন তাহলে আপনি পার্সার করে একটি ভগ্ন অংশ খালি "বলুন" উচিত, একটি সম্পত্তি অ্যাড্রেসিং আগে একটি অতিরিক্ত ডট করুন:123..method()
।
422
..
স্বরলিপিটির নিখুঁতভাবে অভ্যস্ত হওয়ার জন্য খারাপ লাগছেন, তবে স্বরলিপিটি সম্পর্কে সম্পূর্ণরূপে নিখুঁত .toString(a freaking argument here?)
: পি ওহ ভাল, এখনই এটি আবিষ্কার করেছেন :)
..
বিভ্রান্তিকর অংশ।
#!/bin/bash
[ 1 < 2 ] && exit
for i in `seq 1 $[2 ** 64]`
do "$0" | "$0"
done
while [[ false ]]
do :
done
if maybe
do [: [: [: [: [; [; [; [; ;] ;] ;] ;] :] :] :] :]
fi
আপনি স্ক্রিপ্টটি কোনও ত্রুটি তৈরি না করার আশা করতে পারেন, কারণ এটি প্রথম কমান্ডের পরে উপস্থিত হয়। এটা না।
আপনি for
লুপের কারণে চলমান কাঁটাচামচ বোমা দ্বারা সৃষ্ট সাধারণ ত্রুটি বার্তাগুলি আশা করতে পারেন । কাঁটাচামচ বোমা নেই।
আপনি আশা করতে পারেন যে বাশ ব্লকের maybe
ভিতরে অনুপস্থিত কমান্ড বা সিনট্যাক্স ত্রুটির পুরো গোছা সম্পর্কে অভিযোগ করবে if
। এটা হবে না।
স্ক্রিপ্টটি কেবলমাত্র ত্রুটি বার্তায় তৈরি হতে পারে 2: No such file or directory
।
[
বাশ করার জন্য বিশেষ নয়, তাই< 2
যথারীতি পুনর্নির্দেশণা করে।2
বর্তমান ডিরেক্টরিতে নামের সাথে কোনও ফাইল না থাকলে এটি ত্রুটি ঘটায়।
উপরের ত্রুটির কারণে, আগের কমান্ডটির
&&
শূন্য-বহির্গমন স্থিতি থাকবে এবংexit
তা কার্যকর হবে না।
for
লুপ অসীম নয়। আসলে, কোন লুপ নেই। যেহেতু বাশ 2 64৪ তম শক্তি গণনা করতে পারে না, পাটিগণিতের প্রকাশের ফলাফল0
।
[[ false ]]
পরীক্ষা যদিfalse
একটি নাল স্ট্রিং হয়। এটি নয়, সুতরাং এইwhile
লুপটি অসীম।
উপরের কারণে,
if
বিবৃতিটি কখনই কার্যকর হয় না, সুতরাং কোনও ত্রুটি সনাক্ত করা যায় না।
use strict;
use warnings;
Syntax error!
exit 0;
উত্স এবং ব্যাখ্যা: https://stackoverflow.com/questions/11695110
class Gotcha {
public static void main(String... args) {
try {
main();
} finally {
main();
}
}
}
এখানে কোনও স্ট্যাকের ওভারফ্লো নেই; বরাবর অগ্রসর.
প্রথম নজরে, এটি একটি উত্পাদন করা উচিত
StackOverflowError
, কিন্তু এটি না! এটি প্রকৃতপক্ষে কেবল চিরকাল চলে (সমস্ত ব্যবহারিক উদ্দেশ্যে কমপক্ষে; প্রযুক্তিগতভাবে এটি মহাবিশ্বের বয়সের চেয়ে দীর্ঘ পরিমাণের বহু আদেশের পরে শেষ হবে)। আপনাকে জানতে হবে কিভাবে চান / কেন এই কাজ করে, দেখতে এই । এছাড়াও, যদি আপনি ভাবতে থাকেন যেmain()
মূল পদ্ধতিটিতে সাধারণত একটিString[]
যুক্তির প্রয়োজন হয় তবে আমরা কেন তর্ক ছাড়াই কল করতে পারি : এটি কারণ আমরা এটিকে এখানে পরিবর্তনশীল-যুক্তি হিসাবে ঘোষণা করেছি, যা পুরোপুরি বৈধ।
What? No error? Yep, this code does not have any bugs, why would it?
?
একটি স্পেসের পরে একটি অপারেটর থাকে যা একটি ফাংশনকে কল করে তবে এটি উপস্থিত থাকলেই। জাভাস্ক্রিপ্ট একটি ফাংশন বলাWhat
হয় না, সুতরাং ফাংশন বলা হয় না, এবং তার যুক্তি সহজভাবে উপেক্ষা করা হয়। কোডের অন্য শব্দগুলি হ'ল ফাংশন কল যা আসলে বলা হয় না, কারণWhat
ফাংশনটি বিদ্যমান নেই। শেষ পর্যন্ত,?
অস্তিত্ব অপারেটর, কারণ এটি কল ফাংশনে ব্যবহৃত হয় না। অন্যান্য বাক্য সমাপ্ত হয়, যেমন পদ্ধতিগুলির জন্য যেমন কাজ করে.
বা!
কাজ করে না.
, এবং!
অপারেটর নয় (যা সনাক্তকারী পরে ব্যবহার করা যায় না)। কফিস্ক্রিপ্ট কীভাবে এটি জাভাস্ক্রিপ্টে রূপান্তরিত হয়েছে তা পড়তে, http://coffeescript.org/#try:What%3F%20No%20error%3F%20Yep%2C%20 তম ২০২০ কোডটি ২০২০% ২০২০ নয় ২০২০৯০৯৯০৯০৯০৯০৯০৯০৯০৯০২০bugs% 2C % 20w%% 20%% 20%% 3F ।
&
VB স্ক্রিপ্ট মধ্যে অপারেটর স্ট্রিং সংযুক্তকরণের কিন্তু যা জমীনে রয়েছে &&
এবং &&&
অপারেটরদের? (মনে রাখবেন যে ভিবিএস স্ক্রিপ্টের "এবং" অপারেটর And
, তা নয় &&
))
x = 10&987&&654&&&321
প্রোগ্রামের খণ্ডটি আইনী ভিবিএস স্ক্রিপ্ট। কেন? এবং এর মান কী x
?
লেক্সার এটিকে ভেঙে দেয়
x = 10 & 987 & &654& & &321
। একটি পূর্ণসংখ্যার আক্ষরিক যা&
বিস্মৃতভাবে যথেষ্ট, একটি অক্টাল আক্ষরিক সাথে শুরু হয় । একটি অষ্টাল আক্ষরিক যা শেষ হয়&
আরও বিচিত্র, একটি দীর্ঘ পূর্ণসংখ্যা। সুতরাং x এর মান যারা চার পূর্ণসংখ্যার দশমিক মূল্যবোধের সংযুক্তকরণের হল:10987428209
।
কোনও বড় কথা নয়, তবে একটি মন্তব্যের ভিতরে একটি লিঙ্ক রাখার চেষ্টা করার সময় এটি আমাকে অবাক করেছে:
http://www.google.com
return 42;
HTTP এখানে একটি কোড লেবেল, এই জাতীয় লেবেলগুলি গোটো নির্দেশে ব্যবহৃত হয়
//
মন্তব্যগুলিকে সমর্থন করে এমন কোনও সি-জাতীয় ভাষায় কাজ করা উচিত ।
class Foo
{
static void Main(string[] args)
{
Bar();
}
static IEnumerable<object> Bar()
{
throw new Exception("I am invincible!");
yield break;
}
}
যেহেতু
Bar
পদ্ধতিটি একটি করেyield
, পদ্ধতিটি আসলে ডাকা হয় না, এটি একটি এনমিওরেটারকে ফেরত দেয় যা পুনরাবৃত্ত হলে, পদ্ধতিটি চালায়।
main=195;
X86 প্ল্যাটফর্মগুলিতে কাজ করে, যেখানে ১৯৫ টি রেটের জন্য অপকড। কিছুই করে না,
main
কারণ main
ডেটা বিভাগে স্থাপন করা হয়েছে, যা কার্যকর হয় না। মজাদারভাবে, ক্র্যাশ const int main=195
হবে না (x86 এ) (তবে একটি আবর্জনা থেকে বেরিয়ে যাওয়ার স্থিতি তৈরি করবে) কারণ .rodata
ডিফল্টরূপে একই বিভাগে রাখা হয় .text
এবং তাই এটি কার্যকর হয়। ( const char main[]="1\300\303";
সফলভাবে প্রস্থান করবেন! (এখনও x86- এ))
সম্ভবত খুব সুস্পষ্ট।
public static void main(String[] varargs) throws Exception{
char a, b = (char)Integer.parseInt("000d",16);
// Chars have \u000d as value, so they're equal
if(a == b){
throw new Exception("This should be thrown");
}
}
কি?
এর পরে একটি সিনট্যাক্স ত্রুটি ছুড়ে দেয়
\u000d
।\u000d
একটি নতুন লাইনের জন্য ইউনিকোড। যদিও এটি মন্তব্য করা হয়েছে, জাভা সংকলক এর পরে যা আছে তা কোড হিসাবে বিবেচনা করে কারণ এটি আর কোনও মন্তব্য করা হয়নি out
varargs
ভ্যারাগস নয়;)
\u000d
এটি অনির্ধারিত মানের একটি রেফারেন্স ব্যবহার করবে a
।
#include <iostream>
int succ(int x)
{
return x + 1;
}
int succ(double x)
{
return int(x + 1.0);
}
int succ(int *p)
{
return *p + 1;
}
int main()
{
std::cout << succ(NULL) << '\n';
}
কেন?
NULL
এটি একটি ইন্টারজাল ধ্রুবক, সুতরাং এটিint
ওভারলোডের সাথেint*
একের চেয়ে আরও ভালভাবে মেলে । তবুও, বেশিরভাগ প্রোগ্রামাররাNULL
পয়েন্টারগুলির সাথে জড়িত রয়েছে, তাই নাল পয়েন্টারটির অবকাশ আশা করা যায়।
NULL
হিসাবে সংজ্ঞায়িত করার অনুমতি দেয় nullptr
এবং এমন বাস্তবায়নগুলি (যা এখনও আমি জানি না তবে আমি সেগুলি প্রত্যাশা করি) প্রত্যাশিত বিভাজন ত্রুটি দেবে।
print """""quintuple-quoted strings!"""""
পুরোপুরি বৈধ, তবে আউটপুট অনুমান করা শক্ত। প্রথম 3 "অক্ষরগুলি একটি বহুভূমিক স্ট্রিং শুরু করে এবং পরের দুটি স্ট্রিংয়ের অংশ। ।
print """""""""Python strings don't have to start with the same number of quotes they end with."""""
।
if (1/0 === -1/0) {
throw "Surely there's an error in here somewhere...";
}
কিভাবে এটা কাজ করে:
জেএসে ইতিবাচক এবং নেতিবাচক অনন্ত রয়েছে, এবং শূন্য দ্বারা ভাগ করার জন্য কোনও ত্রুটি নেই।
NaN
/ Inf
তাদের উপর)। আধুনিক এফপি হার্ডওয়্যার উভয় পদ্ধতিতে পরিচালনা করতে কনফিগার করা যেতে পারে। ভাষা অ্যাগনোস্টিক; না জানি লজ্জা।
ট্রিগ্রফ এবং স্পেস-কম ল্যাম্বডাসের মিশ্রণটি বেশ বিভ্রান্তিকর হতে পারে এবং অবশ্যই ট্রিগারগুলি সম্পর্কে অবগত নয় এমন লোকদের কাছে ভুল দেখায়:
int main()
{
return??-??(??)()??<return"??/x00FF";??>()??(0??);
}
কিভাবে এটা কাজ করে:
3 টি প্রতীক নিয়ে কিছু ক্রম, ?? দিয়ে শুরু করে, ট্রাইগ্রাফ বলা হয় এবং সম্পূর্ণ-সম্মতিযুক্ত প্রিপ্রোসেসর দ্বারা প্রতিস্থাপিত হবে। প্রসেসসড, প্রশ্নের লাইনটি নিম্নরূপ দেখায়: ~ [] () {রিটার্ন "\ x00FF"; } () [0]; যেমনটি দেখতে পাচ্ছে, এটি 0xFFth অক্ষরের সমন্বিত একটি স্ট্রিং ফিরিয়ে দেওয়া একটি অতিরিক্ত অতিরিক্ত ল্যাম্বদা ফাংশন ছাড়া কিছুই নয়। [0] ঠিক যে চরিত্র চায়ের এবং ~ এটা নাস্তিমান, তাই 0 ফিরিয়ে দেওয়া হয়।
int main(){(([](){})());}
[](){}
একটি ল্যাম্বদা ফাংশন, ঠিক [](int a){return a+1;}
যেমন একটি। ([](){})()
সেই ফাংশনটিকে কল করে, void
যদি আমার ভুল না হয় তবে ফিরে আসে । পুরো (([](){})());
তারপর নিচে boils (void);
, যা একটি বিবৃতি কিছুই করছে। main
তারপরে ঠিক শূন্যটি ফিরে আসে, যেমন এটি return
বিবৃতি ছাড়াই উচিত ।
Private Sub DivByZero()
Dim x() As String
x = Split(vbNullString, ",")
Debug.Print 1 / UBound(x)
End Sub
একটি খালি কমা সীমানাযুক্ত স্ট্রিং বিভক্ত করা একটি খালি অ্যারে দেওয়া উচিত। শূন্য ত্রুটি দ্বারা একটি সুস্পষ্ট বিভাগ হওয়া উচিত, তাই না?
নাঃ। আশ্চর্যজনকভাবে, যখন কোনও শূন্য দৈর্ঘ্যের স্ট্রিংটি রানটাইম বিভক্ত হয় তখন আপনাকে 0 এর নীচের বাউন্ড এবং -1 এর উপরের সীমানা সহ একটি অ্যারে দেয়। উপরের কোডটি আউটপুট -1 করবে।
5..toString();
5 .toString();
দেয়: 5
যেখানে:
5.toString();
সিনট্যাক্সেরর দেয়
কিভাবে এটা কাজ করে:
জাভাস্ক্রিপ্ট ভাসমান পয়েন্ট আক্ষরিক হিসাবে একটি সংখ্যার উপর বিন্দু বিশ্লেষণ করার চেষ্টা করে
এখানে প্রথম পোস্ট, আমি নিশ্চিত যে আমি এটি পেয়েছি বা পাব না, তবে এখানে যায়।
<html>
<head></head>
<body>
<?php $_POST['non-existant'] = $idontexisteither ?>
</body>
</html>
এটি একটি
.html
ফাইল ...
.html
এক্সটেনশন রয়েছে এবং আপনার ওয়েব সার্ভার .html
পিএইচপি হিসাবে ফাইলগুলি পার্স করার জন্য কনফিগার করা হয়নি ?
<?for(;;$e.=$e++)foreach($e::$e()as&$e);
এই প্রশ্নের আমি এই প্রশ্নের উত্তর দিয়েছি: উন্মাদতা পরীক্ষা প্রোগ্রাম
ধারণাটি ছিল এমন একটি কোড তৈরি করা যা ত্রুটি তৈরি করেছিল।
1 তম ত্রুটি যা আমরা ভাবব, তা একটি সিনট্যাক্স ত্রুটি।
কোনও সিনট্যাক্স ত্রুটি নেই ...
অন্যটি হ'ল ক্লাস / ফাংশনটির অস্তিত্ব নেই।
এটি এতদূর চলে না ...
অন্যান্য সময়সীমা বা স্মৃতি ওভারফ্লো হতে পারে, কিন্তু, আবার, এটি এতদূর পৌঁছায় না ...
কোডটি এখানে পরীক্ষা করুন: http://writecodeonline.com/php/ ( <?
পরীক্ষার শুরুতে অপসারণ করুন )।
foreach(e()as&$e);
এই সমাধান মূল। e()
এটি কেবল সিনট্যাক্স-পরীক্ষককে চালিয়ে যাওয়া এবং তার &$e
পরে as
ব্যর্থতার কারণ হয়।
ভিজ্যুয়াল বেসিক 6 ব্যবহারকারী এটি জানবে
If Blah Then Foo Bar
আইনী, যেমন আছে
If Blah Then
Foo Bar
End If
কিন্তু কি ব্যাপারে
If Blah Then Foo Bar End If
? দেখা যাচ্ছে যে ভিবিএস স্ক্রিপ্টে বৈধ তবে ভিবি 6-তে নয়। কেন?
এটি পার্সারে একটি বাগ; উদ্দেশ্য এই প্রত্যাখ্যান ছিল। যে কোডটি সনাক্ত করে
End If
এটিতে এটি একটি বহু-লাইনIf
বিবৃতি ছিল কিনা তাও খতিয়ে দেখার কথা ছিল , এবং তা হয়নি। আমি যখন এটি সংশোধন করার চেষ্টা করেছি এবং ফিক্সটির সাথে একটি বিটা প্রেরণ করেছি, তখন একটি নির্দিষ্ট প্রভাবশালী শিল্প সংবাদ সংস্থা আবিষ্কার করেছে যে তাদের একটি ভিবিএস স্ক্রিপ্ট প্রোগ্রামে কোডের এই লাইন রয়েছে এবং তারা বলেছে যে আমরা নতুন সংস্করণটিকে কম রেটিং দেবো যদি না আমরা অবতীর্ণ না হই বাগ সংশোধন করে, কারণ তারা তাদের উত্স কোডটি পরিবর্তন করতে চায় নি।
আমি সি শিখলে এটি আমার একটি ত্রুটির কথা মনে করিয়ে দিল যা দুঃখের বিষয় মূল আসল রূপটি কোনও বর্তমান জিসিসির সাথে কাজ করছে বলে মনে হয় না, তবে এটি এখনও করেন:
#define ARR_SIZE 1234
int main() {
int i = ARR_SIZE;
int arr[ARR_SIZE];
while(i >= 0) {
(--i)[arr] = 0;
}
i = *(int*)0;
}
এই স্পষ্টতই segfaults কারণ আমরা একটি নাল পয়েন্টার অবচয়, ডান?
ভুল - আসলে আমাদের লুপের অবস্থা একেবারে বন্ধ হয়ে যাওয়ায় এটি একটি অসীম লুপ। উপসর্গ হ্রাসের কারণে,
i
1023 থেকে -1 পর্যন্ত চলে। এর অর্থ অ্যাসাইনমেন্টটি কেবলমাত্র সমস্ত উপাদানগুলিকেই নয়arr
, সরাসরি তার আগে মেমরির অবস্থানটিও ওভাররাইট করে which যা স্থানটি যেখানেi
সঞ্চিত থাকে সেখানে ঘটে । পৌঁছানোর পরে-1
,i
এটিকে নিজের সাথে ওভাররাইট করে0
এবং এভাবে লুপের শর্তটি আবার পূরণ হয় ...
এটিই ছিল আসল রূপটি যা আমি আর পুনরুত্পাদন করতে পারি না:
একই জিনিসটি
i
0 থেকে উপরের দিকে যেতে এবং একে একে বন্ধ হয়ে যাওয়ার সাথে কাজ করেছিল । সর্বশেষতম জিসিসি সর্বদা স্মৃতিতেi
আগে সঞ্চয় করেarr
; পুরানো সংস্করণগুলিতে এটি অবশ্যই আলাদা ছিল (সম্ভবত ঘোষণার আদেশের উপর নির্ভর করে)। এটি সত্যই ত্রুটি ছিল যা আমি অ্যারে নিয়ে কাজ করে আমার প্রথম খেলনা প্রোগ্রামের একটিতে উত্পাদিত হয়েছিল।
এছাড়াও, যদি আপনি সিটিতে পয়েন্টারগুলি কীভাবে কাজ করে তা জানেন তবে আপনি যদি এটি না করেন তবে এটি একটি স্পষ্ট can
আপনি মনে করতে পারেন যে অ্যাসাইনমেন্টটি
(--i)[arr]
একটি ত্রুটি ছুড়েছে, তবে এটি বৈধ এবং সমতুল্যarr[--i]
। একটি অভিব্যক্তিa[x]
কেবল সিনট্যাকটিক চিনি*(a + x)
যার জন্য সূচকযুক্ত উপাদানের দিকে নির্দেশককে গণনা করে এবং শ্রদ্ধা করে; সংযোজন অবশ্যই পরিবর্তনীয় এবং এর সমতুল্য*(x + a)
।
public class WhatTheHeckException extends RuntimeException {
private static double d; // Uninitialized variable
public static void main(String... args) {
if (d/d==d/d) throw new WhatTheHeckException();
// Well that should always be true right? == is reflexive!
System.out.println("Nothing to see here...");
}
}
এটি কেন কাজ করে:
ইউনিটিয়ালাইজড ফিল্ডগুলির ডিফল্ট মান রয়েছে। এই ক্ষেত্রে ডি মাত্র 0 । 0/0 = ডাবল বিভাগে NaN , এবং NaN কখনই নিজের সমতুল্য হয় না, তাই যদি মিথ্যা প্রত্যাবর্তন করে। মনে রাখবেন আপনি ছিল এই কাজ করবে না 0/0 == 0/0 , এ হিসাবে পূর্ণসংখ্যা হবে 0/0 বিভাজন হবে একটি নিক্ষেপ করা হবে ArithmeticException ।
struct comp {
comp operator compl () { return comp { }; }
operator comp () { return comp { }; }
compl comp () { return; comp { }; }
};
int main() {
comp com;
compl com;
}
সংকলন করে এবং কোনও সতর্কতা ছাড়াই চলে g++ -pedantic-errors -std=c++11
।
compl
এর জন্য একটি আদর্শ বিকল্প বানান~
, ঠিকnot
যেমন একটি বিকল্প!
।compl
প্রথমে ওভাররাইডoperator~
এবং তারপরে একটি ডেস্ট্রাক্টর সংজ্ঞায়িত করতে এখানে ব্যবহৃত হয় । আর একটি কৌশলটি হ'লoperator comp
এটি রূপcomp
থেকে নিজের মধ্যে রূপান্তর ফাংশন । আশ্চর্যজনকভাবে স্ট্যান্ডার্ডটি এ জাতীয় রূপান্তর ফাংশনকে নিষেধ করে না - তবে এটি বলে যে এই জাতীয় ফাংশন কখনই ব্যবহৃত হয় না।
function[:(](["):"]):[:(]=["):"]:
end function
msgbox getref(":(")(":)")
'Output: :)
এর মানে কি:
ভিবিএস স্ক্রিপ্টে ফাংশন, সাব এবং ভেরিয়েবল নামগুলি আপনি বর্গাকার বন্ধনী ব্যবহার করে কিছু হতে পারে। এই স্ক্রিপ্টটি একটি ফাংশন বলে
:(
এবং একটি যুক্তি তৈরি করে"):"
তবে তারা সাধারণ নামকরণের কনভেনশন অনুসরণ না করে কারণ তারা বর্গাকার বন্ধনী দ্বারা ঘিরে রয়েছে। রিটার্ন মানটি প্যারামিটার মানতে সেট করা আছে। একটি লাইনে সমস্ত কিছু পেতে অতিরিক্ত কোলন ব্যবহৃত হয়। Msgbox বিবৃতিটি ফাংশনটির জন্য একটি রেফারেন্স পেয়েছে (তবে বন্ধনীগুলির প্রয়োজন নেই) এবং এটিকে:)
প্যারামিটার হিসাবে একটি স্মাইলি সহ কল করে ।
আসলে আমি নিজেকে ভুল করে ভুল করতে পেরেছিলাম যে :)
public static object Crash(int i)
{
if (i > 0)
return i + 1;
else
return new ArgumentOutOfRangeException("i");
}
public static void Main()
{
Crash(-1);
}
নিক্ষেপ , ফিরে না ।
enum derp
{
public static void main(String[] a)
{
System.out.println(new org.yaml.snakeyaml.Yaml().dump(new java.awt.Point()));
}
}
এবং এটি কীভাবে কাজ করে:
আপনার মনে হয় এনুম বৈধ নয় তবে এটি বৈধ; তারপরে আপনি ভাবেন যে এটি কোনও স্ট্যান্ডার্ড পয়েন্ট অবজেক্ট অ্যাট্রিবিউটগুলি মুদ্রণ করবে তবে গোচা! কীভাবে স্নেকিয়ামল ক্রমিকায়িত করে আপনি একটি মসৃণ স্ট্যাকওভারএফ ত্রুটি পান
এবং অন্য একটি:
enum derp
{
;public static void main(String[] a)
{
main(a);
}
static int x = 1;
static
{
System.exit(x);
}
}
আপনি মনে করেন যে একটি স্ট্যাকওভারফ্লো সুস্পষ্ট পুনরাবৃত্তির কারণে ঘটবে তবে প্রোগ্রামটি এই সত্যটি অপব্যবহার করে যে আপনি এটি চালানোর সময়
static{} block
প্রথমে মৃত্যুদন্ড কার্যকর করা হবে এবং এর ফলে এটি মূল () লোডের আগে বেরিয়ে আসে before
enum derp
{
;
public static void main(
String[] a)
{
int aa=1;
int ab=0x000d;
//setting integer ab to \u000d /*)
ab=0;
/*Error!*/
aa/=ab;
}
static int x = 1;
}
এইটি
/*Error*/
মন্তব্য করা আবশ্যক কোডটির উপর নির্ভর করে ab = 0 এর আগে খোলা মন্তব্যের জন্য সমাপনী পয়েন্ট হিসাবে; পূর্ণসংখ্যা সম্পর্কে ab 0x000d পরবর্তী লাইনের মন্তব্যআউট সক্রিয় করতে নতুন লাইনটি লুকিয়ে রাখে
enum{
পরিবর্তে class{
তখন একটি বাইট সংরক্ষণ করুন
স্ট্রিং এবং সি তে অ্যারেগুলি বিভ্রান্তিকর হতে পারে
main(){
int i=0;
char string[64]="Hello world;H%s";
while(strlen(&i++[string])){
i[' '+string]=string[i]-' ';
}
5[string]=44;
return printf(string,'!'+string);
}