C语言指针 (*++argv)[0] 与 *++argv[0] 的区别 有高手帮忙吗

2025-04-08 09:45:46
推荐回答(2个)
回答1:

(*++argv)[0] ——把argv的值加1后作为地址取其中的值,再把这个值作为地址,从这个地址开始取第0个元素之值;
*++argv[0] ——将argv的第0个元素值加1作为地址取其内容。
差别大了……

回答2:

*++argv[0]等价于(*++argv[0]),

个人认为二者没有明显区别,不过这种前缀表达式和解除引用同时使用的时候,
有的脑残编译器会报错,有的编译器不会报错。

二者在非声明阶段的使用是应该是没有区别的,楼主不用纠结于这种情况,
C语言是一门极其灵活的语言,这种现象还有好多,
一个忠告:用最标准、最容易让人明白的写法就好了,

满意请采纳, 不满意请追问