p=&k;和*p=&k;的区别

来源:百度知道 编辑:UC知道 时间:2024/09/28 12:01:39
char k;
char *p;
p=&k;
*p=&k;的区别
还是char *p=&k;

p = &k这是指针赋值,
*p 是取p指向地址的内容,相当于变量k *p = 2 ,k值为2

*p = &k; *p是变量,&k取变量k的地址赋给变量,是不充许的,写程序要绝对禁止的! &k应该赋予同类型的指针!

两者谈不上区别,因为操作的意义是不同的!不属于同一类型的操作!

我觉得这个一个初学者的误区,下面我来解释一下吧:
*有两个作用:
char k;
char *p=&k;这里的*p做为一个指针的定义,开辟一个指向字符的指针

另外除了定义外的其他地方出现是个取地址内容的作用

*p=3,,,这里的*p就代表k,,所以实际上就是k=3

指针的间接访问就是这么来的,哈