C语言求助:请问C和D有区别吗?

2025-05-20 23:19:27
推荐回答(3个)
回答(1):

当然有区别啦
就拿你说的来举例子吧
p=&a[0];
p++->n;执行完这行代码的结果是:
p->n=5,p=&a[1]
++p->n;执行完这行代码的结果是:
p->n=7,p=&a[1]
p++是先执行再加1
而++p是先+1然后再执行

回答(2):

++(*p).n D)++p->n
前者是p这个指针指向的内容 加1
++(*p).n表示 ++((*p).n) 因为 点的优先级 高于++;
++p->n 表示 ++(p.n) 因为 ->的优先级 高于++;
优先级问题看下面链接资料

回答(3):

区别大了。
C)++(*p).n 将指针p指向的对象的值加1后得到的数值作为某个数据结构,在访问其中的成员n
D)++p->n 将指针加1(逻辑上)后,访问其所指向对象的成员n