C++赋值疑问

来源:百度知道 编辑:UC知道 时间:2024/05/30 05:22:22
#include "stdio.h"
void main()
{
int a,b,k=4,m=6,*p1=&k,*p2=&m;
a=p1==&m; //没能看懂,谁能帮忙解释一下啊?
b=(-*p1)/(*p2)+7;
printf("a=%d\n",a);
printf("b=%d\n",b);
}

意思是:如果p1 == &m条件成立,将1赋给a,否则将0赋给a。

p1==&m是一个条件表达式,条件表达式值一般为真true/假false。
由于p1是指针变量,存储的是m的地址,所以与p1比较时需用m的地址,即&m。&是取地址运算。
a赋值后的值为1(true)/0(false)