char , short int , int , long int , float , double
常量和变量
常量:在程序运行过程中,其值不可以改变的量整型 100 , 125 , -100
实型 3.14 , 0.125 , -3.789
字符型 ‘a’ , ‘b’ , ‘2’
字符串 “a” , “ab” , “1232”
变量:其值可以改变的量
int a = 100;
a = 101;
直接常量:用单引号括起来,如: ‘a’ , ‘b’ , ‘0’ 等。
转义字符:以反斜杠 “” 开头,后跟一个或几个字符,如 ‘\n’ , ‘\t’ 等,分别代表换行,横向跳格(Tab)。
‘\\’ 表示的是 \
‘%%’ 是%
‘\’’ 是 ’
用char定义,每个字符变量被分配一个字节的内存空间
字符值以ASCII码的形式放在变量的内存单元中
char a;
a = ‘x’;
a变量存放的是字符’x’的 ACSII:120
即a=120和a=‘x’在本质上是一样的
#include
typedef short int INT16;
int main()
{
char a = 'x';
char b = 120;
printf("a=%c\n", a);
printf("b=%c\n", b);
return 0;
}
打印ASCII表:
#include
int main()
{
unsigned int i;
for (i = 0; i <= 255; i++)
{
printf("%d %c ", i, i);
if (i % 10 == 0)
printf("\n");
}
}
是由双引号括起来的字符序列,如“CHINA”、“哈哈哈”、“C Program” 、“¥12.5” 等都是合法的字符串常量。
字符串常量与字符常量的不同
‘a’为字符常量,“a”为字符串常量
每个字符串的结尾,编译器会自动的增加一个结束标志位‘\0’,即"a" 包含两个字符’a’ 和 ‘\0’
十进制
八进制
十六进制
有/无符号短整型(un/signed) short (int) 2个字节
有/无符号基本整型(un/signed) int 4个字节
有/无符号长整型(un/signed) long (int) 4个字节
实型常量也称为实数或者浮点数
十进制形式:由数字和小数点组成:0.0 , 0.12 , 5.0
指数形式:123e3代表 123*10的三次方
不以f结尾的常量是double类型
以f结尾的常量(如3.14f)是float类型
单精度(float)和双精度(double)
float型: 占4字节,7位有效数字,指数-37到38
double型:占8字节,16位有效数字,指数-307到308
格式化输出字符:
%d 十进制有符号整数 %u 十进制无符号整数
%x 以十六进制表示的整数 %o 以八进制表示的整数
%f float型浮点数 %lf double型浮点数
%e 指数形式的浮点数
%s 字符串 %c 单个字符
%p 指针的值
特殊应用:
%3d:要求宽度为3位,如果不足3位;
%03d:要求宽度为3位,如果不足3位,前面用0补齐
%-3d:要求宽度为3位,如果不足3位,后面用空格补齐
%.2f:小数点后只保留两位
#include
int main()
{
char a = 'x';
int b = 101;
float c = 3.14f;
double d = 1.23;
int e = 0x3d;
double f = 1.123f;
double g = 123456;
char* p = "hello,world!";
printf("a=%c\n", a);
printf("b=%d\n", b);
printf("c=%f\n", c);
printf("d=%lf\n", d);
printf("e=%x\n", e);
printf("e=%3d\n", e);
printf("f=%e\n", f);
printf("g=%e\n", g);
printf("%s\n", p);
printf("**%3d**\n",1);
printf("**%03d**\n", 1);
printf("**%-3d**\n", 1);
printf("**%5.2f**\n", 3.1415926);
return 0;
}