首页 > 试题广场 >

若定义:int a=511,*b=&a;, 则printf(

[单选题]

若定义:int a=511,*b=&a;, printf("%d\n",*b);的输出结果为( )。

  • 无确定值
  • a的地址
  • 512
  • 511
int a=511,*b=&a;
拆开就是:
int a=511;      int *b=&a;
int *b=&a可以再次拆开得到:
int a=511;      int *b;    b=&a;
已经很清楚了b为a的地址,*b为a的值,简化步骤就是int *b=&a;
发表于 2019-06-30 20:17:13 回复(0)
a:a对应的存储单元中的数据。  &a:a对应的存储单元的地址。  *a:另一个存储单元中的数据。 当a声明的类型是int*时,a中存储的是一个存储单元的地址,而该存储单元中存储的数据是一个整数数值;通过*a可以访问(读取或修改)这个数值。a == &*a 都是该存储单元的地址。 
发表于 2019-02-18 12:20:46 回复(0)
分开看吧:
int a=511;
int *b=&a;
printf("%d\n",*b);
发表于 2017-11-06 22:21:13 回复(0)
不懂,有人解释下么
发表于 2018-05-30 12:12:48 回复(0)
毁我三观
发表于 2017-09-29 23:28:23 回复(0)
b指向a的地址,然后再取b的值,也就是a的值
发表于 2018-06-28 23:14:15 回复(0)
a变量的是个引用,511存放的空间才是正确的值
发表于 2019-10-09 11:29:34 回复(0)
我还以为是赋值,结果我选了B,眼花了
发表于 2018-04-22 13:31:18 回复(0)
难道不是循环?511-256???
发表于 2017-11-01 16:09:28 回复(0)
相信自己,1+1就是等于2
发表于 2017-09-20 15:46:54 回复(0)