# include"stdio.h"
main()
{
int a,b,k=5,m=4;
int *p1=&k,*p2=&m;
a=p1==&m;
b=(-*p1)/(*p2)+7;
printf("a=%d\n",a);
printf("b=%d\n",b);
}
怎么理解C语言中 a=p==&m;的意思
答案:5 悬赏:10 手机版
解决时间 2021-03-04 04:27
- 提问者网友:树红树绿
- 2021-03-03 10:14
最佳答案
- 五星知识达人网友:枭雄戏美人
- 2021-03-03 10:45
a=p1==&m;
意思就是
如果指针p1 是指向m所在的内存,那么a = 1;否则 a = 0
就是先判断俩指针是不是相等,然后赋值给a
意思就是
如果指针p1 是指向m所在的内存,那么a = 1;否则 a = 0
就是先判断俩指针是不是相等,然后赋值给a
全部回答
- 1楼网友:夜余生
- 2021-03-03 14:55
这句话可以这样表达,更加清晰
if(p1 == &m)
{
a = 1;
}
else
{
a = 0;
}
- 2楼网友:神鬼未生
- 2021-03-03 14:17
这个执行顺序为a = ( p != ( &m));
你这样问大家也许不懂,我详细说明下:
先对变量m取地址,再判断指针p的地址是不是与变量m的地址&m相同,根据结果赋值给变量a,假如不同的话,a就为假,相同的话a为真。这个与c语言中的运算符的优先级有关,具体的话得去了解。
- 3楼网友:神的生死簿
- 2021-03-03 12:38
它是个判断加赋值的语句。
若p1==&m值为真,a=1,反之a=0
- 4楼网友:痴妹与他
- 2021-03-03 11:28
==优先运算。如果p的值等于m的地址,a=1,否则a=0
相当于表达式a=(p==&m?1:0);
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯