d173220523 发表于 2020-11-4 21:46

第8和9行加不加&有什么不一样吗?为什么输出的结果一样

本帖最后由 d173220523 于 2020-11-10 12:48 编辑

#include <iostream>
struct person{
      char name;
      int vote;
}p;
int main()
{      
      scanf("%s",&p.name);
      scanf("%s",p.name);
      printf("%s",p.name);
}
编译器用的是vc6

鬼魅王子 发表于 2020-11-4 22:03

本帖最后由 鬼魅王子 于 2020-11-4 22:06 编辑

没区别的,都是p.name的地址
吧地址输出就知道了

想要更加详细的了解可以参考这个文章
https://blog.csdn.net/daniel_ice/article/details/6857019

魅影醉 发表于 2020-11-4 22:07

对于非基本类型变量,打印出来的都是地址

雷欧库珀 发表于 2020-11-5 08:28

我也是vc6,为啥我不加&就读不到我输入的字符?

shihdhr 发表于 2020-11-5 16:37

数组名默认就是首元素的地址。
数组名加个&就是整个数组的首地址,也是首元素的地址。
应该没区别
页: [1]
查看完整版本: 第8和9行加不加&有什么不一样吗?为什么输出的结果一样