我想问下C语言中,定义了指针类型 int * a,然后定义了变量 int b;
但是没有将指针a指向b的地址,两者没有关系
一般如果有将指针变量a=&b,的话,a就指向了b的地址
a就等于b变量,
那么a没有指向b的情况下,a代表什么呢?
例如:若有说明,long *p,a,则不能通过scanf语句正确给输入项读入数据的程序段
*p = &a; scanf("ld",p);
就像上面一样,*p=&a, *p是代表什么呢?还有错在哪里嘞?
我想问下C语言中,定义了指针类型 int * a,然后定义了变量 int b;
但是没有将指针a指向b的地址,两者没有关系
一般如果有将指针变量a=&b,的话,a就指向了b的地址
a就等于b变量,
那么a没有指向b的情况下,a代表什么呢?
例如:若有说明,long *p,a,则不能通过scanf语句正确给输入项读入数据的程序段
*p = &a; scanf("ld",p);
就像上面一样,*p=&a, *p是代表什么呢?还有错在哪里嘞?
你定义了一个指针,但是没有给它指向任何位置
这就相当于你定义了一个int型的变量,但是没有给它赋初值
但是只要它分配了内存就会有值,只不过是不知道什么程序运行残留的随机值
指针也一样,它会有个值,指向一个内存随机地址
就是通常所说的野指针
如果你的指针是个野指针,它指向的不是你的程序申请的内存,而是系统其它内存
那你在给它赋值的时候,就是要胡乱去改内存里一个值,这种操作是受系统保护的,不允许你随便乱改的