声明字符串变量是,为什么需要加上中括号,且中括号需要输入数字,该数字代表什么?
如图,这是在声明一个在之后会通过scanf函数赋值的字符串变量。为什么需要加上中括号,且中括号里需要填入数字,以及填入的数字代表什么意思呢? JJCKA 发表于 2020-10-10 23:57
也就是说,我scanf无论输入多长的一串字符都只占用一个元素吗,
那为什么小甲鱼的课后作业那里要输入256 ...
不是的,可以这么理解:
当输入char name,输入"abcdefg"这个字符串时,内存中大概是这样的:
当输入char name,输入"abcdefg"这个字符串时,内存中大概是这样的:
表面上看来并没有什么不同,但是第二种方法很不好,比方说:1002恰好是另一个变量的地址,结果另一个变量被无缘无故设为c了;或者1003是只读内存区域,程序修改了只读内存区域造成报错......麻烦很多。
如果要避免麻烦,一定要用第一种 char 【】,它的中括号不是表示字符串里面的元素嘛,但是需要外界输入对它赋值前我是不知道它的元素的,所以声明时填入的数字是限制最多多少个元素嘛?但是为什么我填入1或者256都可以输入许多的字符,那么填入的数字的意义是什么呢?谢谢大家啦!! 字符数组的大小 本帖最后由 昨非 于 2020-10-10 23:40 编辑
也就是元素的个数,建议楼主学习下c语言数组知识,参考:
https://www.runoob.com/cprogramming/c-arrays.html
满意的话,记得设置最佳答案 昨非 发表于 2020-10-10 23:28
字符数组的大小
您好这个大小指的时字节大小,还是元素个数呢?
为什么我输入1或者10000都能赋一个很长的字符串的值(通过scanf函数),并且正常输出呢?
麻烦您具体再说说! JJCKA 发表于 2020-10-10 23:49
您好这个大小指的时字节大小,还是元素个数呢?
为什么我输入1或者10000都能赋一个很长的字符串的值(通 ...
元素个数 JJCKA 发表于 2020-10-10 23:49
您好这个大小指的时字节大小,还是元素个数呢?
为什么我输入1或者10000都能赋一个很长的字符串的值(通 ...
看链接 本帖最后由 昨非 于 2020-10-11 00:05 编辑
一个值(数字),不论大小都只算一个元素的, 昨非 发表于 2020-10-10 23:50
元素个数
但是我输入的时候,用scanf赋值时候也可以输入很多元素的字符串,并且正常输出,这是为什么呀?#include<stdio.h>
int main()
{
char name;
float shengao;
float tizhong;
printf("请输入您的姓名:");
scanf("%s",&name);
printf("请输入您的身高(cm):");
scanf("%f",&shengao);
printf("请输入您的体重(kg):");
scanf("%f",&tizhong);
shengao = shengao*0.39;
tizhong = tizhong*2.20;
printf("%s的身高是%.2f(in)体重是%.2f(lb)\n",name,shengao,tizhong);
return 0;
}
昨非 发表于 2020-10-10 23:54
一个值,不论大小都只算一个元素的
也就是说,我scanf无论输入多长的一串字符都只占用一个元素吗,
那为什么小甲鱼的课后作业那里要输入256,既然只是输入一个名字那么只用输入1呀 JJCKA 发表于 2020-10-10 23:55
但是我输入的时候,用scanf赋值时候也可以输入很多元素的字符串,并且正常输出,这是为什么呀?
你如果输入字符串的话,一个字符占字符数组的一格 昨非 发表于 2020-10-10 23:58
你如果输入字符串的话,一个字符占字符数组的一格
但是我输入【1】,输入字符串时候依然可以输入大于1个的字符呢?
JJCKA 发表于 2020-10-10 23:57
也就是说,我scanf无论输入多长的一串字符都只占用一个元素吗,
那为什么小甲鱼的课后作业那里要输入256 ...
我这么说的其实很不标准,真正要解决这个问题你得先把数组的知识点学了,不难理解的,
不然我一旦说的哪里不对,很容易误导你 昨非 发表于 2020-10-11 00:01
我这么说的其实很不标准,真正要解决这个问题你得先把数组的知识点学了,不难理解的,
不然我一旦说的哪 ...
好的,那我去看看数组,谢谢您啊! lhgzbxhz 发表于 2020-10-10 23:10
不是的,可以这么理解:
当输入,输入"abcdefg"这个字符串时,内存中大概是这样的:
那为什么是256呢?一个字符的话占位一个字节,256的话是不是这个变量的大小也就最小256个字节了呢?麻烦您啦! JJCKA 发表于 2020-10-11 11:41
那为什么是256呢?一个字符的话占位一个字节,256的话是不是这个变量的大小也就最小256个字节了呢?麻烦 ...
256的意思是有256个char型变量,但这个变量不是占256个字节。它只是告诉我们:哪里有256个char。它本身只是一个4字节或8字节的指针。(这个你不用深究,以后学到指针就会恍然大悟了) lhgzbxhz 发表于 2020-10-11 13:10
256的意思是有256个char型变量,但这个变量不是占256个字节。它只是告诉我们:哪里有256个char。它本身只 ...
好的谢谢啊!!!
页:
[1]