- 问题
运行下方代码会发现程序出错:incompatible pointer to integer conversion assigning to ‘int’ from ‘int *’;。
这引出了一个古老的问题:指针修饰符的位置。
int a = 1;
int* m, n;
m = n = &a;
- 分析
第二行定义了一个指向整形的指针m和一个整形变量n。
注意:有人可能认为这里定义了两个指向整形变量的指针m和n,但实际上不是,具体可以参考这位博主搬运的资料:2.6 修饰符的位置。 - 正确写法
int a = 1;
int *m, *n;
m = n = &a;
本文分析了一段因指针修饰符位置不当导致的代码错误,并给出了正确的写法。通过对比错误与正确的代码示例,解释了在C/C++中定义多个指针变量时需要注意的细节。

447

被折叠的 条评论
为什么被折叠?



