关于C语言的学习问题集合,请知者赐教
1.C的格式字符%c与%s:介绍中说%c的作用是将其对应的表达式的值按照字符方式进行输出,如'A';%s的作用是输出一个字符串,如"hello"问题:既然单个字符与字符串输出对应的格式字符分别为%c与%s,那么例子中的单个字符用单引号,字符串用双引号,这种写法是硬性规定吗?(我把它们调换的话,就报错:xx.exe已停止工作 Windows可以联机检查该问题的解决方案(联机检查解决方案并关闭该程序/关闭程序/调试程序:character constant too long for its type)还有单个字符与字符串对应的格式字符一个为%c,一个为%s,这是不是也是硬性规定?
2.看到网上的视频中说Turbo C2.0中的函数可以不用#include<stdio.h>开头,那么要不要头文件是不是与编译器有关呢?如果是的话,什么样的不要呢,什么样的要呢,可否小结一下?
3.输入函数scanf()中的例如&a、&b符号“&”是不是在此函数中必需,因为我看到很多的scanf()函数都有这个&,如果是的话,那这个符号表示啥意思呢?
4.scanf("%d,%d",&a,&b)
scanf("%d %d",&a,&b)
问题:上面两种写法都没有报错,它们的区别是第一种格式字符中间用逗号隔开,而第二种是用一个空格隔开,但是我发现在输入的是就要求要对应起来,以输入2与5为例,对于第一种要求输入2,5(中间也加逗号),对于第二种,在输入的时候要对应的输入2 5(中间也用空格),如果交叉的话(意思就是格式字符中间用逗号隔开的,在后面输入中间用空格隔开或者反过来)就会报错。所以问哈,是不是前面程序中格式字符的写法与后续的输入的方式要对应起来呢?
备注:以上四个问题均是我基于Dev C++的编译器发现的(目前不知是否与编译器有关)