a[0].n=5;p=&a[0];则值为6的表达式是(*p).n++吗?谢谢!
答案:2 悬赏:20 手机版
解决时间 2021-03-01 00:22
- 提问者网友:椧運幽默
- 2021-02-28 02:57
a[0].n=5;p=&a[0];则值为6的表达式是(*p).n++吗?谢谢!
最佳答案
- 五星知识达人网友:拾荒鲤
- 2021-02-28 03:26
不,(*p).n++是5;++(*p).n才是6追问你好,可以说下过程吗!谢谢!追答a[0].n=5;//这句话把结构(或类)变量a[0]的成员变量n赋为5
p=&a[0];//把结构变量a[0]的地址赋给p
(*p).n++;//(*p)取p里面存的地址指向的变量,即a[0],然后(*p).n取a[0]的成员变量n,最后(*p).n++将a[0]的成员变量n加1,但是是先取数5再加1,就像楼下说的那样
p=&a[0];//把结构变量a[0]的地址赋给p
(*p).n++;//(*p)取p里面存的地址指向的变量,即a[0],然后(*p).n取a[0]的成员变量n,最后(*p).n++将a[0]的成员变量n加1,但是是先取数5再加1,就像楼下说的那样
全部回答
- 1楼网友:风格不统一
- 2021-02-28 04:04
(*p).n++ 的确是6- - 不过如果这样直接用 实际使用到的是5值 用完后加1变6
++(*p).n 是先加1再用
如printf("%d ",(*p).n++); 显示5
如printf("%d ",++(*p).n); 显示6
再给你举个例子 你看下效果就知道了
#include
int main()
{
int a;
int b;
a=5;
b=5;
printf("a++ :%d\n",a++);
printf("++b :%d\n",++b);
printf("a :%d\n",a);
printf("b :%d\n",b);
}
显示是
5
6
6
6
++(*p).n 是先加1再用
如printf("%d ",(*p).n++); 显示5
如printf("%d ",++(*p).n); 显示6
再给你举个例子 你看下效果就知道了
#include
int main()
{
int a;
int b;
a=5;
b=5;
printf("a++ :%d\n",a++);
printf("++b :%d\n",++b);
printf("a :%d\n",a);
printf("b :%d\n",b);
}
显示是
5
6
6
6
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯