为您找到"
scanf("%s",c); 与gets(c);有什么区别呢?
"相关结果约100,000,000个
scanf("%s",&b);是正确的输入格式;scanf("%s",a);是错误的输入格式。例:include <stdio.h> int main(void){ int a,b,c;printf("Give me the value of a,b,c seperated with whitespaces:\n");scanf("%d%d%d",&a,&b,&c);printf("a=%d,b=%d,c=%d\n",a,b,c);return 0...
1、使用区别 scanf()不会检查输入边界,可能造成数据溢出。scanf_s()会进行边界检查。2、意思 scanf表示从键盘输入指定格式的数据。如:scanf("%d",x);指从键盘给x输入一个int型(整型)数据;scanf("%f",x);指从键盘给x输入一个float型(实型)数据;对应的输出为:printf 按照指定的格式输出...
众所周知,int ,float,char等关键字是用于声明变量,表示在电脑内存空间中开辟一个存储空间保存将要保存的数值,而地址就是指这个变量空间所在电脑的地址位置,scanf是通过这个地址找到变量空间,将常量保存进入指定的存储空间,& 取址符,表示获取变量保存在电脑存储中的地址位置,能正常run,但正常run...
&是取地址,scanf读取变量的时候,参数需要的是变量的实际内存地址,了解C语言指针的概念后就会明白,地址就是指针,指向变量的数据内容。不过一般%s是不会用&取地址的,因为字符串类型本身就是指针,不需要再进一步取地址。
你可以用printf("%p %p\n",a+1,&a+1);来检查它们的性质。但在有的编译器下,char a[];scanf("%s",a);与scanf("%s",&a);的效果是一样的,比如VC++6.0。这不能不说是这类编译器的一个bug。C是一种语法比较松散的语言,有不少边缘化的细节没有规定统一的解释,造成了不同的编译器...
字符数组定义为int?你这是把int数组格式为字符输入输出。。。这个写法也可以,a数组在编译器里还是要转换成指针进行运算,结果跟&a一样,&a是在a的地址里写入数值,这样编译器便省去了转换这一步
gets()和scanf()的区别在于输入的字符串是否中间有空格:对于前者,只有遇到"\n"时才停止输入,而对于后者,出现"\n"或空格都停止输入。
C语言中的数组名在函数调用时默认就是该数组的首地址,因此在使用scanf等函数输入字符串时,可以直接使用数组名,无需再使用取地址符&。例如:假设定义了一个字符串数组char str[100];,在输入时可以直接写成scanf("%s", str);,而不需要scanf("%s", &str);。取地址符&通常用于获取变量的地址,...
所以%s无法接受进来空格。5、%f 用来输入一个单精度浮点数类型,也就是float类型,其他同%d 6、%lf 用来输入一个双精度浮点数类型,也就是double类型,其他同%d 对于你上面的问题 scanf(%3d%2d%3c,&a&b&ch)输入123空格46空格abc 输出的是a=123 b=46 c=空格 才对 ...