C语言整型声明方式及说明符:
- 说明符:包含了一些关键字,用于描述被声明的标识符的基本类型。如:signed long int等。
- signed关键字一般只用于char类型,因为其他类型在缺省的情况下都是有符号数,signed将这个范围扩至-127~127。而char的默认范围因编译器而异。所以char可能等于signed char(在vs和gcc中默认为signed char),也可能等于unsigned char。
- 在声明整形变量时,如果声明中已经至少有了一个其他的说明符,关键字int可以省略。例如:signed、unsigned、short、long等。
在以下代码中,验证了:char在vs和gcc中默认为signed char;同时也得出,如果将char赋值为1000,那么输出的结果为-24。计算的方式为1000-256-256-256 = 232,而255的值为-1,所以232为-24。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<memory.h>
int main(int argc, char *argv[])
{
char a = 1000;
printf("%d\n", a);//-24
char b = 255;
printf("%d\n", b);//-1
system("pause");
return 0;
}
本文深入探讨了C语言中的整型声明方式及其说明符,包括signed、unsigned、short、long等关键字的使用,以及它们如何影响char类型的默认范围。通过实例代码验证了char在不同编译器下默认为signedchar,并解释了当char赋值超过其范围时的溢出行为。
564

被折叠的 条评论
为什么被折叠?



