永发信息网

在C语言中,有如下的写法: int a = 5; int *pa; pa = &(a + 1);

答案:5  悬赏:10  手机版
解决时间 2021-03-09 12:43
  • 提问者网友:了了无期
  • 2021-03-08 12:29
大家看看对吗?不对的话,请说明理由!
最佳答案
  • 五星知识达人网友:千夜
  • 2021-03-08 13:51
首先,你定义指针pa的时候最好先给它初始化,因为不初始化的话它可能指向一个很重要的区域,你这时候如果再赋值则可能改变这个重要区域的数据。至于pa=&(a + 1)这个是不对的,因为a+1的结果是一个数,它存放在内存的一个临时空间中,临时空间是会被释放的,你取临时空间的地址是不可取的。
全部回答
  • 1楼网友:七十二街
  • 2021-03-08 17:32
不能这么写啊,pa = &(a + 1)你是要指针指向啥?没有地址给你指啊,pa = &a,a=a+1这样OK
  • 2楼网友:duile
  • 2021-03-08 17:05
a不是数组,&(a+ 1)的地址是哪里,好像没有这个吧 再看看别人怎么说的。
  • 3楼网友:平生事
  • 2021-03-08 15:58
pa = &(a+1)这一句不对。 a是一个变量,a+1是一个数值,无法再通过在前面加“&”获得一个地址。有的编译器可以用&(int )(a+1)的方式强制获得一个地址,但结果不确定,属于极危险的操作。
  • 4楼网友:执傲
  • 2021-03-08 14:27
pa = &(a + 1);这个写法是不对的,我不知道你的意思。 如果你想把a先加1之后把地址给pa的话,pa = &(++a); a+1是一个表达式,表达式的结果是6,但6不是一个一个变量,也就不能进行取地址操作。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯