在C中,似乎有零各个值之间的差- NULL,NUL和0.
我知道ASCII字符的'0'计算结果为48或0x30.
该NULL指针通常定义为:
#define NULL 0
Run Code Online (Sandbox Code Playgroud)
要么
#define NULL (void *)0
Run Code Online (Sandbox Code Playgroud)
另外,也有似乎评价的NUL人物.'\0'0
是否有时候这三个值不相等?
这在64位系统上也是如此吗?
根据C/C++语言中运算符的优先级表(参见Wikipedia),增量运算符(++)优先于赋值运算符(=).
有人可以解释为什么编译器首先分配值(bill [x]中的1),然后在这个简单的程序中增加索引值(i ++).我认为它应该是相反的(先增加再分配):
#include <iostream>
using namespace std;
int bill[] = {16, 17, 18, 19, 20};
int main ()
{
int i = 3;
bill[(i++)] = 1; // I think it should be bill[4] = 1;
cout << bill[0] << endl;
cout << bill[1] << endl;
cout << bill[2] << endl;
cout << bill[3] << endl;
cout << bill[4] << endl;
cout << "Index value:" << i << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出是:
16
17
18
1
20
Index …Run Code Online (Sandbox Code Playgroud)