| 类型 | 同义词 |
|---|---|
| signed char | |
| int | signed, signed int |
| short | short int, signed short, signed short int |
| long | long int, signed long, signed long int |
| long long (C99) | long long int, signed long long,signed long long int |
| 类型 | 同义词 |
|---|---|
| _Bool | bool(在 stdbool.h 头文件中定义) |
| unsigned char | |
| unsigned int | unsigned |
| unsigned short | unsigned short int |
| unsigned long | unsigned long int |
| unsigned long long | unsigned long long int |
char ch= 'A'; // 数据类型为char的变量
printf("The character %c has the character code %d.\n", ch, ch);
for ( ; ch <= 'Z' ; ++ch )
printf("%2c", ch);
在 printf() 语句中,ch 先被视为一个字符以获得显示,然后被视为该字符的整数编码。同样,for 循环在执行 ++ch 的时候将 ch 视为整数,在执行 printf() 的时候,将 ch 视为字符。在使用 7 位 ASCII 码或者扩展 ASCII 码的系统中,上述程序代码将输出以下内容:
The character A has the character code 65.
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
sizeof(short) ≤ sizeof(int) ≤ sizeof(long) ≤ sizeof(long long)
int 类型是最适应计算机系统架构的整数类型,它具有和 CPU 寄存器相对应的空间大小和位格式。| 类型 | 存储空间大小 | 最小值 | 最大值 |
|---|---|---|---|
| char | (与 signed char 或 unsigned char 相同) | ||
| unsigned char | 1个字节 | 0 | 255 |
| signed char | 1个字节 | -128 | 127 |
| int | 2个或4个字节 | -32 768 或 -2 147 483 648 | 32767 或 2 147 483 647 |
| unsigned int | 2个或4个字节 | 0 | 65 535 或 4 294 967 295 |
| short | 2个字节 | -32 768 | 32 767 |
| unsigned short | 2个字节 | 0 | 65 535 |
| long | 4个字节 | -2 147 483 648 | 2 147 483 647 |
| unsigned long | 4个字节 | 0 | 4 294 967 295 |
| long long (C99) | 8个字节 | -9 223 372 036 854 775 808 | 9 223 372 036 854 775 807 |
| Unsigned long long (C99) | 8个字节 | 0 | 18 446 744 073 709 551 615 |
int iIndex, // 定义两个int变量
iLimit= 1000; // 初始化第二个
利用 sizeof 运算符,可以获取一个数据类型或变量的空间大小。表达式 sizeof(type)输出指定类型的大小;sizeof expression 输出指定表达式类型的大小。输出结果是类型为 size_t 的一组字节。如果操作数是一个表达式,则输出结果是该表达式的类型。
size_t 类型作为一个无符号整数类型(如 unsigned long)定义在头文件 stddef.h、stdio.h,以及其他头文件中。在上述示例中,sizeof(int) 的值会和 sizeof(iIndex)一样(都是4)。sizeof(iIndex) 的圆括号可以去掉,因为 iIndex 是一个表达式,不是一个类型。
#include <rstdio.h>
#include <limits.h> // 该文件包含了CHAR_MIN、INT_MIN等宏
int main()
{
printf("Storage sizes and value ranges of the types char and int\n\n");
printf("The type char is %s.\n\n", CHAR_MIN<0? "signed":"unsigned");
printf(" Type Size (in bytes) Minimum Maximum\n"
"--------------------------------------------------\n");
printf("char %8zu %20d %15d\n", sizeof(char), CHAR_MIN, CHAR_MAX );
printf("int %8zu %20d %15d\n", sizeof(int), INT_MIN, INT_MAX );
return 0;
}
版权说明:Copyright © 广州松河信息科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州松河信息科技有限公司 版权所有