新手提问
char *str = "8"; int i = 0; int *d = &i; printf("%d\n", *d); printf("--1\n"); int c = sscanf(str, "%d", d); printf("--2\n"); printf("c:%d,i:%d\n", c, *d);
以上代码本人把 int *d = &i 改为 int *d = 0 后 就报错了;
恳请给出详细的说明
解决方案
30
int *d = 0 , 那么d为一个空指针
你去解引一个空指针,当然会出错
你去解引一个空指针,当然会出错
10
0=NULL ;
30
int *d = 0 表示指针指向了地址为0的地方(俗称的空指针)
空指针解引用:
空指针解引用:
感谢各位回答!
好像
int *d = &i;
*d = 0;
与 int *d = 0;
是不同的啊,是不是?
*d = 0;代表把d指针指向的值赋值为0?
int *d = 0代表声明一个指为空的指针?
不知本人理解能否正确
对的
5
正确