1. c语言, S是什么,可否去掉S
正确的是B,请查看谭浩强C语言第二版 294页关于 typedef 说明.
Typedef struct S
{
int g;
char h;
}T;
typedef 声明新的类型名,也就是定义一个新的数据类型.如果你看除去 typedef ,T就变成了声明一个结构体类型S:
struct S
{
int g;
char h;
};
加上typedef,T之后,这个T就等效于 struct S,是一个结构体类型.也就是说,typedef 只是将 struct S 另定义为一种新的数据类型T.
再看答案:
A 错误, S 不可以定义结构体变量,要加上 struct ,也就是 struct S + 结构体变量
B 正确, 因为T 等效于 struct S.
C 错误 S 不是变量,要和 struct 一起才有意义.
D 错误 T不是变量,是一种新的类型,等效于 struct S.
2. C语言中%c,%s分别代表什么意思
%c在C语言中代表字符型格式符。
%s在C语言中代表字符串型格式符。
%c和%s一般用在printf、sprintf等字符串格式化函数中,用于决定格式化参数的数据类型。如printf("%s", a)会将变量a作为字符串类型进行格式化。
printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。
printf()函数的调用格式为: printf("<格式化字符串>", <参量表>)。
格式输出,它是c语言中产生格式化输出的函数(在 stdio.h 中定义)。用于向终端(显示器、控制台等)输出字符。格式控制由要输出的文字和数据格式说明组成。要输出的文字除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。
(2)c语言中的s啥意思扩展阅读:
C语言中所有格式化类型的定义:
1、%d/i
接受整数值并将它表示为有符号的十进制整数,i是老式写法
2、%o
无符号8进制整数(不输出前缀0)
3、%u
无符号10进制整数
4、%x/X
无符号16进制整数,x对应的是abcdef,X对应的是ABCDEF(不输出前缀0x)
5、%f(lf)
单精度浮点数和双精度浮点数用f(lf在C99开始加入标准,意思和f相同)
6、%e/E
科学计数法表示的数,此处"e"的大小写代表在输出时用的“e”的大小写
7、%g/G
有效位数,如:%.8g表示单精度浮点数保留8位有效数字。
8、%c
字符型。可以把输入的数字按照ASCII码相应转换为对应的字符
9、%s/S
字符串。输出字符串中的字符直至字符串中的空字符(字符串以'