一、维基百科:
参考:http://zh.wikipedia.org/wiki/%E6%9C%AA%E5%AE%9A%E4%B9%89%E8%A1%8C%E4%B8%BA
在计算机编程中,未定义行为(英语:Undefined behavior)是指行为不可预测的计算机代码。这是一些编程语言的一个特点,最有名的是在C语言中。[1]在这些语言中,为了简化标准,并给予实现(根据我的理解,这里的“实现”指的是编译器)一定的灵活性,标准特别地规定某些操作的结果是未定义的,这意味着程序员不能预测会发生什么事。
二、实例
请看我在csdn的php发过的一个帖子:http://bbs.csdn.net/topics/390620212?page=1#post-395840234
1.php代码:
<?php
$a = 1;
$c = $a+$a++;
var_dump($c); // result:3
$a = 1;
$c = $a+$a+$a++;
var_dump($c); //result:3
我的理解:第一个结果应该是2,第二个结果应该是3
打印输出:
int 3
int 3
2.c代码:(这段代码我运行在 codepad上: http://codepad.org/J6leZd7a)
#include<stdio.h>
int main() {
int a = 1;
printf("a=%d\n",a+a++);
a = 1;
printf("a=%d\n",a+a+a++);
return 0;
}
输出:
a=2
a=3
但是,PHP版的版主回复我: