1.整数常量
用10、8、16进制表示的形式 123 0123 0x123
整数常量后面加一个字母l或者L,表示这个整数位长整型。主要用于函数调用中:如果形参为长整型,实参必须加L转换为长整型。
2.整数变量(signed、unsigned 只用于整型变量)
基本型 int ,即signed int
短整型 short ,即short int ,或signed short int,或signed short
长整形 long ,即 long int,或 signed long int,或signed long
如果是无符号整数,则用unsigned
表示,但其表示的数的范围并没有扩大,只是没有负数了,表示的数的个数不变,但表示的正整数的个数翻倍了;
3.实型常量
两种表现形式:十进制 、指数形式。指数形式的e或者E前必须有数字,e或者E后面的数字必须为整数
4.实型变量
float 、double
赋值时根据定义截取对应的有效数字即可,两者的区别只在于有效位数
5.字符常量
用单引号括起来的单个字符或者转义字符。转义字符以\ 开头。转义字符列表如下:
\b 退格
\f 换页
\n 换行
\r 回车 --- 返回本行最左端
\t 水平制表 --- 跳到下一个输出区,一个输出区为8个字符,下一个的起点应该是第九个字符
\v 垂直制表
\" 双引号
\' 单引号
\\ 反斜杠
\a 报警
\? 问号
\N 8进制常量(N是8进制常数)
\xN 16进制常量 (N是16进制常数)
如果转义字符不是上面的,比如\c,编译器将提示错误。
用上述的转义字符可以输出任何字母、专用字符、图形字符和控制字符。
\0或者\000 (八进制表示)为控制字符,即空操作,用于字符串中。\x0是否也可以呢?!
6.字符变量
char,只能存放一个字符,即该字符的ASCII
码,为一个二进制数,所以内存中存储的是一个整数。从存储的意义上讲,字符变量是整型变量的子集,只是输出形式可以是整数或者字符,操作上和整数完全一样(赋值、运算等):
#include
int main()
{
char c1,c2;
c1=65;c2=98;
printf("c1=%d,c2=%d\nc1=%c,c2=%c\n",c1,c2,c1,c2);
}
上面程序的输出如下:
c1=65,c2=98
c1=A,c2=b
7.字符串常量 --- 没有字符串变量,只能用数组将字符串存起来
用双引号引用起来,在存储上系统会自动加上结束标志'\0',输出和赋值时不用加入'\0'
变量的赋值(初始化)不是在编译阶段完成是,是在程序运行时赋值的
----> 理解为在程序运行时为变量分配存储空间,并且初始化存储空间。
特例:静态存储变量、外部变量的初始化是在编译阶段完成的。