标识符(identifier)
和变量名定义相同
sizeof运算符
sizeof运算符用于获得数据类型或表达式的长度
sizeof(object); //sizeof(对象)
sizeof(type_name); //sizeof(类型)
sizeof object; //sizeof 对象
例:求各数据类型字符长度
#include <stdio.h>
int main()
{
printf("int=%d\n",sizeof(int)); //4
printf("short int = %d\n",sizeof(short)); //2
printf("long int = %d\n", sizeof(long)); //4
printf("long long int = %d\n", sizeof(long long)); //8
printf("char = %d\n", sizeof(char)); //1
printf("bool = %d\n", sizeof(bool)); //1
printf("float = %d\n", sizeof(float)); //4
printf("double = %d\n", sizeof(double)); //8
printf("long double = %d\n", sizeof(long double)); //12
return 0;
}
类型限定符
signed(带符号位)和unsigned(不带符号位)
用于限定char类型或任何整型变量的取值范围
例: [signed] short [int]
unsigned short [int]
[sigend] int
unsigned int
…
例:用代码对比signed和unsigned的区别
#include <stdio.h>
int main()
{
short i;
unsigned short j;
i = -1;
j = -1;
printf("%d\n", i); //-1
printf("%u\n", j); //65525
return 0;
}
取值范围
1Byte == 8bit
2的n次方减一
二进制 11 2x2-1=3 十进制 3
111 2x2x2-1=7 7
1111 2x2x2x2-1=15 15
例:(二进制数转十进制数)求2的32次方减一的值
#include <stdio.h>
#include <math.h>
int main()
{
unsigned int result = pow(2, 32) - 1; //求的为2的32次方减一
printf("result = %u\n", result);
return 0;
}
符号位
无符号类型使用%u
一个32位的整型变量,除去左边第一位符号位,剩下表示值的只有31个比特位
计算机是用补码的形式来存放整数的值
基本类型取值范围
整数型
浮点型