中括号里为啥要有256,scanf里name前面为啥不用加&
#include <stdio.h>int main()
{
char name;
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;
} 本帖最后由 jackz007 于 2021-11-4 20:22 编辑
#include <stdio.h>
int main()
{
char name; // 定义变量 name 为可以容纳 256 个字符的字符数组,这样,name 就代表这个存储空间,同时,也是这片存储区域的开头地址。
float height, weight;
printf("请输入您的姓名:");
scanf("%s", name); // name 本身就是内存地址,所以,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;
} jackz007 发表于 2021-11-4 20:21
为啥必须要写256? 本帖最后由 jackz007 于 2021-11-4 20:29 编辑
ZXPoo 发表于 2021-11-4 20:22
为啥必须要写256?
256 是作者认为在任何情况下 name 中需要存储的内容都不会超过 255 个字符(最后一个字符必须用于存储字符串结束标志 '\0')。不是必须 256,其它数值也是可以的,只要这个空间足够容纳 name 可能出现的任何字符长度就行。 jackz007 发表于 2021-11-4 20:26
256 是作者认为在任何情况下 name 中需要存储的内容都不会超过 255 个字符(最后一个字符必须用 ...
懂了,谢谢
页:
[1]