根据ISO C++,取消引用空指针是未定义的行为.我的好奇心是,为什么?为什么标准决定声明它未定义的行为?这个决定背后的理由是什么?编译器依赖?似乎没有,因为根据C99标准,据我所知,它是明确定义的.机器依赖?有任何想法吗?
我有一些与此代码相关的问题.printf的参数是类型const char*和...(可变参数列表).
1)为什么程序的输出是d和不是127?
2)是否+1会转换为字符串并传递给类型的参数变量const char*?
#include<stdio.h>
int main()
{
printf("%d"+1 , 127); //how this will get executed?
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:
d
Run Code Online (Sandbox Code Playgroud)