类型、运算符与表达式
局部变量一般用较短的变量名(尤其是循环控制变量),外部变量使用较长的名字
数据类型及长度
char 字符型 占用一个字节,可以存放本地字符集中的一个字符
int 整型,通常反映了所用机器中整数的最自然长度
flaot 单精度浮点型
double 双精度浮点型
此外可以用short与long两个限定符用于限定整型
#include <stdio.h>
int main() {
printf("Size of int: %zu bytes\n", sizeof(int));
printf("Size of short: %zu bytes\n", sizeof(short));
printf("Size of long: %zu bytes\n", sizeof(long));
printf("Size of long: %zu bytes\n", sizeof(long int));
printf("Size of long: %zu bytes\n", sizeof(float));
printf("Size of long: %zu bytes\n", sizeof(double));
/*
这是因为int和float在内存中的存储方式不同。int类型的变量通常采用二进制补码表示,用于表示整数。
而float类型采用IEEE 754标准的浮点数表示法,用于表示实数。在IEEE 754标准中,float类型的数值用
32位表示,其中1位表示符号位,8位表示指数位,23位表示尾数位。这种表示法可以表示比int类型更大
范围的数,因为浮点数的指数位可以用来表示更大的数字范围,同时也可以表示小数和负数。因此,虽然
int和float都是32位,但是它们所能表示的范围和精度是不同的。
*/
return 0;
}
short int sh;
long int counter;
各编译器可以根据硬件特性自主选择合适的类型长度,但要遵循下列限制;short与int类型至少16位,而long类型至少32位,并且short类型不得长于int类型,而int类型不得长于long类型。
类型限定符signed与unsigned可用于限定char类型或任何整型,unsigned类型的书总是正值或0,并遵守算术模2的n次平方定律,其中n是该类型占用的位数,例如:unsigned char类型的范围为0~255,signed char类型范围为-128 ~ 127。
练习 2-1
编写一个程序以确定signed及unsigned限定的char、short、int、long类型变量的取值范围。采用打印标准头文件中的相应值以及直接计算两种方式实现后一种方法的实现较困难一些,因为要确定各种浮点类型的取值范围。
unsigned int A 比起 signed int B或者32位的int B ,因为没有符号,所以可以表示正数的范围比有符号的多一倍。
#include <stdio.h>
#include <limits.h>
int main() {
printf("Signed char min: %d\n", SCHAR_MIN);
printf("Signed char max: %d\n", SCHAR_MAX);
printf("Unsigned char max: %u\n", UCHAR_MAX);
printf("----------------------------------\n");
printf("Signed short min: %d\n", SHRT_MIN);
printf("Signed short max: %d\n", SHRT_MAX);
printf("Unsigned short max: %u\n", USHRT_MAX);
printf(