限定符
|
含义
|
extern
|
声明一个变量,extern声明的变量没有建立存储空间。
extern int a;//变量在定义的时候创建存储空间
|
const
|
定义一个常量,常量的值不能修改。
const int a = 10;
|
Volatile
|
防止编译器优化代码
|
register
|
定义寄存器变量,提高效率。register是建议型的指令,而不是命令型的指令,如果CPU有空闲寄存器,那么register就生效,如果没有空闲寄存器,那么register无效。
|
字符串格式化输出和输入
字符串常量
- 字符串是内存中一段连续的char空间,以'\0'(数字0)结尾。
- 字符串常量是由双引号括起来的字符序列,如“china”、“C program”,“$12.5”等都是合法的字符串常量。
字符串常量与字符常量的不同:

每个字符串的结尾,编译器会自动的添加一个结束标志位'\0',即 "a" 包含两个字符'a'和’\0’。
十进制
|
以正常数字1-9开头,如123
|
八进制
|
以数字0开头,如0123
|
十六进制
|
以0x开头,如0x123
|
二进制
|
C语言不能直接书写二进制数
|
printf是输出一个字符串,putchar输出一个char。
printf格式字符:
打印格式
|
对应数据类型
|
含义
|
%d
|
int
|
接受整数值并将它表示为有符号的十进制整数
|
%hd
|
short int
|
短整数
|
%hu
|
unsigned short
|
无符号短整数
|
%o
|
unsigned int
|
无符号8进制整数
|
%u
|
unsigned int
|
无符号10进制整数
|
%x,%X
|
unsigned int
|
无符号16进制整数,x对应的是abcdef,X对应的是
ABCDEF
|
%f
|
float
|
单精度浮点数
|
%lf
|
double
|
双精度浮点数
|
%e,%E
|
double
|
科学计数法表示的数,此处"e"的大小写代表在输出
时用的
"e"的大小写
|
%c
|
char
|
字符型。可以把输入的数字按照ASCII码相应转
换’对应的字符
|
%s
|
char *
|
字符串。输出字符串中的字符直至字符串中的空字符
(字符串以'\0‘结尾,这个'\0'即空字符)
|
%p
|
void *
|
以16进制形式输出指针
|
%%
|
%
|
输出一个百分号
|
%d 整形 int
%f 浮点型 float
%c 字符型 char
%hd 短整型 short
%ld 长整形 long
%lld 长长整形 long long
//sizeof 计算数据类型在内存中占的字节(BYTE)大小
//sizeof(数据类型) sizeof(变量名) sizeof 变量名
printf附加格式:
字符
|
含义
|
l(字母l)
|
附加在d,u,x,o前面,表示长整数
|
-
|
左对齐
|
m(代表一个整数)
|
数据最小宽度
|
0(数字0)
|
将输出的前面补上0直到占满指定列宽为止不可以搭配使用-
|
m(代表一个整数)
|
m指域宽,即对应的输出项在输出设备上所占的字符数。n指精度,用于说明输出的实型数的小数位数。
对数值型的来
说,未指定n时,隐含的精度为n=6位。
|
- getchar是从标准输入设备读取一个char。
- scanf通过%转义的方式可以得到用户通过标准输入设备输入的数据。