| 网站首页 | 业界新闻 | 群组 | 人才 | 技术文章 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 148 人关注过本帖
标题:结构体
只看楼主 收藏
前往企鹅屋
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2017-10-9
结帖率:100%
  已结贴   问题点数:17  回复次数:6   
结构体
struct product
{
    char name[20];
    char shape[20];
    char color[10];
    float price;
    char area[10];
}product1;
int main()
{
    printf("请输入商品的名称:\n");
    scanf("%s",&product1.name);
    printf("请输入商品的形状:\n");
    scanf("%s",&product1.shape);
    printf("请输入商品的颜色:\n");
    scanf("%s",&product1.color);
    printf("请输入商品的价格:\n");
    scanf("%f",&product1.price);
    printf("请输入商品的产地:\n");
    scanf("%s",&product1.area);
    printf("名称:%s\n",product1.name);
    printf("形状:%s\n",product1.shape);
    printf("颜色:%s\n",product1.color);
    printf("价格:%f\n",product1.price);
    printf("产地:%s\n",product1.area);
}
为什么输入对product1的成员输入时都需要加&呢,比如name[20],name不就是name数组的首元素地址吗
2017-10-12 11:35
炎天
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:桃花岛
等 级:版主
威 望:21
帖 子:1051
专家分:3882
注 册:2016-9-15
  得分:6 
以下是引用前往企鹅屋在2017-10-12 11:35:17的发言:

为什么输入对product1的成员输入时都需要加&呢,比如name[20],name不就是name数组的首元素地址吗


不都需要。 字符串输入不加&, 如你所说“比如name[20],name不就是name数组的首元素地址吗”
例如 printf("请输入商品的名称:\n");
     scanf("%s",product1.name);

一万年太久,只争朝夕
2017-10-12 12:37
李岚
Rank: 2
等 级:论坛游民
威 望:1
帖 子:19
专家分:58
注 册:2017-8-31
  得分:6 
以上的源代码是有问题的,像你所说的,不用加&符号,因为当前面是%s时,你后面的参数必须是char *的类型,如果加了&符号你的参数就是char**类型,那么就不符合函数参数类型了,所以那样根本编译不过,提示是参数类型和函数类型不符合
2017-10-12 13:18
前往企鹅屋
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2017-10-9
  得分:0 
程序我验证过,能编译通过得到结果
2017-10-12 13:43
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:114
帖 子:4363
专家分:17027
注 册:2014-5-20
  得分:6 
这样好象都可以
scanf("%s",product1.name);
scanf("%s",&product1.name);
scanf("%s",&product1.name[0]);
2017-10-12 15:07
李岚
Rank: 2
等 级:论坛游民
威 望:1
帖 子:19
专家分:58
注 册:2017-8-31
  得分:0 
那就是可能不同的编译器的结果吧,我用的是Ubuntu系统带的,直接就提示erro了
2017-10-12 18:10
前往企鹅屋
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2017-10-9
  得分:0 
书上说的,字符串数组的name就表示字符串首地址,所以输入时不用取址符;price是float型,输入时需要加取址符。vc6.0环境下。
4 天前 14:05







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.075314 second(s), 8 queries.
Copyright©2004-2017, BCCN.NET, All Rights Reserved