为什么* p= a中a指向的是指针变量的内容?

 我来答
kaixingui2012
2023-06-24 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6462万
展开全部

c语言中*p=a是指针变量赋值语句,这种写法有两种可能意思:

  1. 指针变量定义时的初始化赋值

    int a[10];

    int *p=a ; //这时的a是个地址,如:数组名或指针变量,表示定义指针变量p,同时,p指向地址a。 这里的*是跟随int的,用来表示p变量是int *类型。


  2. 指针变量定义后,给指针变量所指内存中的数据赋值

    int a=10, x;

    int *p ;

    p=&x ; //p指向变量x的地址

    *p=a ; //这表示向p所指向的地址中存储一个数据a,a是个整型数据。p是x的地地址,*p就是x,本句相当于x=a ;

    这里的*是指针变量引用操作运算符,表示引用指针中的数据

    注意:

    p=&x ;  很重要,指针变量必须要指向一个明确的地址,然后才能*操作,否则,未指定地址的指针变量被称为野指针,引用野指针会造成程序运行异常。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式