最为奇怪的程序语言的特性

这些最为奇怪的程序语言的特性,来自stackoverflow.com,原贴在这里。我摘选了一些例子,的确是比较怪异,让我们一个一个来看看。

 
1、C语言中的数组 
在C/C++中,a[10] 可以写成 10[a] 
“Hello World” 也可以写成 i["Hello World"] + i) 
这样的特性是不是很怪异?如果你想知道为什么的话,你可以看看本站的这篇文章——《C语言的谜题》中的第12题。


2、在Javascript中 
’5′ + 3 的结果是:’53′;
’5′ – 3 的结果是:2 


3、C/C++中的Trigraphs

 


上面的这段程序会输出: “LOL|”,这是因为 ??! 被转成了 | 

4、JavaScript 的条件表 
看到下面这个表,不难理解为什么Javascript程序员为什么痛苦了——《Javascript程序员嘴最脏??

 

5、Java的Integer cache

 


为什么会这样呢?你需要了解一下Java Interger Cache,下面是相关的程序,注意其中的注释

 


5、Perl的那些奇怪的变量

 


其所有的这些怪异的变量请参看:http://www.kichwa.com/quik_ref/spec_variables.html


请看下面这段程序,你觉得其返回true还是false?

 

在 javascript 和python下,其行为和Java的是一样的。


7、C语言中的Duff device
下面的这段程序你能看得懂吗?这就是所谓的Duff Device,相当的怪异。

 

 

8、PHP中的字符串当函数用
PHP中的某些用法也是很怪异的

 


9、在C++中,你可以使用空指针调用静态函数
 


来源:http://coolshell.cn/?p=2053

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值