鱼C论坛

 找回密码
 立即注册
查看: 1211|回复: 4

[已解决]新手求教 关于c语言课后作业 S1E8:字符和字符串的小问题

[复制链接]
发表于 2020-7-23 15:27:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
刚刚开始学c语言 课后作业遇到了点问题 希望大神们来教一下
#include <stdio.h>

int main()
{
        char name[256];
        float height, weight;

        printf("请输入您的姓名:");
        scanf("%s", name);

        printf("请输入您的身高(cm):");
        scanf("%f", &height);

        printf("请输入您的体重(kg):");
        scanf("%f", &weight);

        printf("========== 正在为您转换 ==========\n");

        height = height / 2.54; // 厘米转换为英寸
        weight = weight / 0.453; // 公斤转换为磅

        printf("%s的身高是%.2f(in),体重是%.2f(lb)。\n", name, height, weight);

        return 0;
}



为什么 char name 后面要加[256] 具体是什么作用呢?
以及 scanf("%s",name) 那里 为什么 name 前面没有加‘&’ 这个符号 而下面的 height 和 weight 前面有& 是否这个符号是可有可无的

最佳答案
2020-7-23 15:32:10
1,char name[256]是一个字符数组,256代表这个数组的大小。
数组你可以想象成一列火车,可以自定义大小,每个车厢存放一个乘客(元素)。
2,因为数组名就是一个地址,所以不需要取址运算(&)。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-23 15:29:19 | 显示全部楼层
本帖最后由 xiaosi4081 于 2020-7-23 15:38 编辑

1:256就是数组的大小,表示可以存放255个字符(不包括\0)
2:在scanf这里,数组是不用加&号的,因为数组本身就是一个指针(你现在可能还没学到指针,指针就是一个存储地址)

求最佳
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-7-23 15:32:10 | 显示全部楼层    本楼为最佳答案   
1,char name[256]是一个字符数组,256代表这个数组的大小。
数组你可以想象成一列火车,可以自定义大小,每个车厢存放一个乘客(元素)。
2,因为数组名就是一个地址,所以不需要取址运算(&)。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2020-7-23 15:35:15 | 显示全部楼层
3L 正解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-23 15:37:27 | 显示全部楼层
1、char name[256]是定义了一个字符数组,256是数组的长度,可以存放256个字符,存放字符串的话,不建议超过255个,因为后面需要有一个单元存放字符串结束符'\0'
2、scanf后面需要给出一个地址,数组名本身就是地址所以不需要&符号,对于weight和height是一般变量,需要用&指出其地址
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-17 01:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表