C语言指针问题:在定义指针时*p=a和p=a有区别吗?

C语言指针问题:在定义指针时*p=a和p=a有区别吗?


翻过高山走不出你
浏览 2692回答 3
3回答

慕桂英4014372

在定义指针时,指针变量名前的*号是必须的,不能少,区别于普通变量, 说明当前变量是指针变量,而不是普通的变量。对于你的问题,我举例说明:情形一:int a[5]={1,2,3,4,5};int *p=a;//这是在定义指针变量p的同时就直接给它初始化,即把数组a的首地址赋给它。情形二:int a[5]={1,2,3,4,5};int *p;//声明指针变量pp = a;这里的话是先声明指针p,然后再对它初始话,等价于情形一,只是分开写法而已。

回首忆惘然

当然有区别,区别很大,*p=a,就是给指针的表示的地址赋值,也就是赋值给指针指向的存储单元;而p=a,则表示给指针赋值,也就是指针的地址变成了a。两者一个指明了具体值大小,一个指明了具体位置。

跃然一笑

*p=a是p所指向地址的内容是a(比如一个数,或字符)p=a是p指向a(比如0x0001)这个地址
打开App,查看更多内容
随时随地看视频慕课网APP