C语言之字符集、ASCII码和sizeof运算符
一 字符集和ASCII码
结论:字符本质上也是一个整数,每个字符都有唯一一个与之对应的整数,
比如说小写的a对应97,b对应98,c对应99,大写的A对应65,B对应66,C对应67
所以字符对应的那个数字,也可以称之为ASCII码值
二 sizeof运算符
sizeof:
用法:sizeof(类型);
sizeof(变量);
sizeof(常量);
可以计算这个类型或者变量或者常量占用的字节数
tips:
sizeof结果是unsigned long类型(unsigned long; 无符号的long型 有符号:代表可以是负数 无符号:代表只能是正数
整数类型又分为无符号整型和有符号整型
int long short都是有符号的整型,其实完整的写法是在前面加一个signed,但是因为默认就是signed,所以直接写int long short就可以了
也就是说 int long short都可以保存负数.tips: 整型有无符号和有符号之分别,浮点数没有unsigned
)
- sizeof如果计算的是字符常量,那么会默认把字符转成ASCII值,然后计算出来就是4个字节,注意:只是常量,字符类型和字符变量还是1个
tips:代码例子如下
#include <stdio.h>
int main(int argc, const char * argv[]) {
//字符集和ASCII码练习
// int num1=10,num2=20;
//
// //int sum = num1 + num2;
//
// int sum = num1 + 'a';
//
// printf("%d\n",sum);//107
char ch = 97;
printf("%c\n",ch);//a
// sizeof运算符的练习
//sizeof计算类型
/*
int len = sizeof(char);
printf("%d\n",len);//1
int len2 = sizeof(int);
printf("%d\n",len2);//4
int len3 = sizeof(float);
printf("%d\n",len3);//4
int len4 = sizeof(long);
printf("%d\n",len4);//8
int len5 = sizeof(double);
printf("%d\n",len5);//8
*/
//sizeof计算变量
/*
int num = 10;
printf("%lu\n",sizeof(num));//4
char ch = 'a';
printf("%lu\n",sizeof(ch));//1
float f = 303.333f;
printf("%lu\n",sizeof(f));//4
*/
//sizeof计算常量
printf("%lu\n",sizeof(10));//4
printf("%lu\n",sizeof(10l));//8
printf("%lu\n",sizeof(10.3f));//4
printf("%lu\n",sizeof(10.333));//8
printf("%lu\n",sizeof('a'));//4个
return 0;
}