初学者在学习C语言的时候,最头疼的可能就是<强>指针>强,话不多说。让我们直接进入正题
<强>直接上代码强>
int主要(空白) { int * p=0; printf (" % d”, * p); 系统(“暂停”); 返回0; }
直接运行,好了,程序是不是报错了?那就对了。因为此时的int * p=0实际等于int * p;p=0;
让我们来验证一下对不对
int主要(空白) { int * p=0; printf (" % d”, p); 系统(“暂停”); 返回0; }
这说明此时指针* p装的不是0,而是以0作为地址的一个值,输出地址为0的值编译器当然会直接报错。
那为什么会这样呢?因为此时的int * p其实是(int *) p;把它看成是一个新的类型,就和int=0;差不多,这也就解释了为什么会输出0的原因。而我们知道定义一个指针* p, p里面装的是地址,* p则表示这个地址上所储存的值,
引用>
*那么我们如何获取这个地址呢*
这时候就可以用“,”比如
int * p; int=2; p=,; printf (" % d \ n”* p);此时的p通过取地址符号取得了一个的地址,那么* p储存的就是一个的值,你也可以把它看成是另一个,改变它的值也可以改变一个的值
比如这样
int * p; int=2; p=,; * p=1; printf (" % d \ n”* p);此时的就会输出1
以上所述是小编给大家介绍的C语言中指针int * p=0;和int * p; * p=0;和“和”的关系和区别详解,希望对大家有所帮助,也非常感谢大家对网站的支持!
C语言中指针int * p=0;和int * p; * p=0;和“&”的关系和区别详解