c语言的类型
整数:char、short、int、long int
浮点数:float、double、long double
逻辑:bool
指针
自定义
用sizeof()来获取占内存大小
#include<stdio.h>
int main(){
//char c = 'A';
//int i = 255;
//printf("c=%d,i=%d\n",c,i);
printf("char占%d个字节\n",sizeof(char));
printf("short占%d个字节\n",sizeof(short));
printf("int占%d个字节\n",sizeof(int));
printf("double占%d个字节\n",sizeof(double));
printf("long占%d个字节\n",sizeof(long long));
printf("long double占%d个字节\n",sizeof(long double));
printf("float占%d个字节\n",sizeof(float));
//printf("%ld\n",b);
输出结果:
char占1个字节 -128~127
short占2个字节
int占4个字节 -2
double占8个字节
long占8个字节
long double占16个字节
float占4个字节
对一个字节(8位),可以表达的是:
00000000 - 11111111
其中
00000000——> 0
11111111 ~ 100000000——> -1~ -128
00000001 ~ 01111111——> 1 ~ 127
(其中11111111高位是1表示负数,
先取反 00000000,
再加1:00000001,
转化成十进制:1,
添加负号:-1)
#include<stdio.h>
int main(){
char c = 255;//char占一个字节,255表示成 11111111,高位为1,表示负数
unsigned char d = 255;//无符号,把11111111看成非补码,也就是纯正数二进制
int i = 255;
//int占4个字节,255表示成 00000000 00000000 00000000 11111111,表示正数
printf("c=%d,d=%d,i=%d\n",c,d,i);
char a = -1;//-1二进制表示成 1111 1111
int b = -1;
printf("a=%u,b=%u\n",a,b);//无符号输出,输出时扩展为所有的位都是1,
//即11111111 11111111 11111111 11111111
输出 c=-1,d=255,i=255 a=4294967295,b=4294967295