我尝试了很多教程,但变得更加困惑。所以请用最简单的答案来教这个菜鸟。如果可能的话,就坚持这个问题......我的信息重载:)
首先是主函数
main(){
int y=0;
display(&y);
}
现在是函数
int display(int* x){
//do something depending on different values of x
}
其中一个案例如下: “如果没有指向变量,即变量的地址为 NULL,则函数将指向的变量的值设置为零。”
现在我对我需要做的显示功能的理解
if (x==NULL)
*x=0;
现在我陷入困境...... - 如果我用 display(NULL) 调用该函数;我在视觉中收到以下错误 “BTP 300 A1.exe 中 0x00C84036 处未处理的异常:0xC0000005:写入位置 0x00000000 时发生访问冲突。”
如果函数的地址为空,我如何在 y 中存储一些值?
或者问题是错误的,它应该说存储在指针变量指向的地址处的值是空,即 y=Null ???
如果 int* z 是空指针,那么 z 指向的地址的值是多少,指向的地址中存储的值是多少???
最佳答案
这很可能意味着:
int value_to_display = x? *x: 0;
// do something with value_to_display
即,要求将空指针视为指向零的指针。
关于c++ - C++ Visual Studio 和 gcc 编译器中的空指针和空地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19076452/