c语言数据类型
“类型”是对数据的抽象
类型相同的数据有相同的表示形式、存储格式以及相关的操作
程序中使用的所有数据都必须定属于某一种数据类型
32位系统下
数据类型的本质
C语言和C++语言编译器里面,充分表达现实生活中的人事物
数据类型可理解为创建变量的模具(模子):是固定内存大小的别名。
数据类型的作用:编译器预算对象(变量)分配的内存空间大小
int a;//告诉编译器分配4个字节
int b[10];//告诉编译器分配40个字节
//b+1 &b+1 结果不一样,b &b所代表的数据类型不一样
//数组数据类型:(1定义一个数组数据类型,2数据指针,3数组类型和数组指针类型的关系)
//b代表的数组首元素的地址
//&b代表的是整个数组的地址
- 常量
就是在程序中不可变的量,常量在定义的时候必须给初值
#include <stdio.h>
int main(int argc,char *argv[]){
printf("%d",10);//直接打印常量10
return 0;
}
- #define 定义一个宏常量
#include <stdio.h>
#define MAX 10
//定义一个宏常量,值为10,不能定义关键字,不可变,大写。
//等号左边只能是变量,不能为常量
int main(int argc,char *argv[]){
printf("%d",MAX);
return 0;
}
- const常量
#include <stdio.h>
int main(int argc,char *argv[]){
const int b=20;//定义一个const常量,值为20
//b=10;常量值不能被修改
printf("%d",b);
return 0;
}
- 变量
#include <stdio.h>
int main(int argc,char *argv[]){
int a;//定义一个变量,名字叫a,值可变
a=100;//将变量赋值
printf("%d",a);
return 0;
}
- 字符串常量
#define定义一个字符串常量
#include <stdio.h>
#define NAME "Lihua\n"
//定义了一个字符串常量
int main(int argc,char *argv[]){
printf(NAME);
return 0;
}
定义一个const字符串常量
#include <stdio.h>
int main(int argc,char *argv[]){
const char *str="hello~\n";
printf(str);
return 0;
}
对于define类型的常量,c语言的习惯是常量名大写,但对于普通的const常量以及变量,一般为小写结合大写的方式。
- 二进制数、位、字节与字
一个位只能表示0或者1两种状态,简称bit,一个位是一个bit
一个字节为8个二进制,称为8位,简称Byte=8bit
一个字为2个字节,简称WORD
两个字为双字,简称DWORD
上网的带宽为Mb,文件的大小为MB,GB…
MB=8*Mb相差8个位(8倍)
- 八进制
#include <stdio.h>
int main(int argc,char *argv[]){
const char *str="hello~\n";
printf("%d",010);
//在前加0表示八进制的数,去0则是十进制的10
return 0;
}
- 十六进制
0x
#include <stdio.h>
int main(int argc,char *argv[]){
const char *str="hello~\n";
printf("%d",0x10);
//在前加0x表示十六进制的数