1.基础数据类型
signed 修饰无符号数据, unsigned 修饰有符号数据。
signed int i1 = 1;
unsigned int i2 = -1;
c的基本类型整理:
sizeof(); 获取对象,或者类型的变量 存储字节的大小。
比如:sizeof(i1);
long 和 int 在早期的十六位计算机上面 int 2字节,long 4字节,而现在一般32,64下,long和int一样。
想要8字节的话就可以是 long long
long long i3 = 10; sizeof(i3);
打印的话:
printf("%d\n",i1); %d的意思就是格式化 int类型的数据
格式化还有:
8进制 %o
16进制 小写: %x 大写:%X
(0x)+16进制前面 %#x
C99标准以前,C语言里面是没有bool,C++里面才有,
C99标准里面定义了bool类型,需要引入头文件stdbool.h
bool类型有只有两个值:true =1 、false=0。
因此实际上bool就是一个int
所以在c/c++中 if 遵循一个规则, 非0为true,非空为true;
NULL 其实也就是被define为了 0
2. 格式化
需要引入 #include <stdio.h> 头文件
printf、sprintf等
sprintf:将格式化的数据写入第一个参数
char str[100];
sprintf(str, "小明今年%d岁了", 10);
printf("%s", str);
输出如下:
3.数组与内存布局
数组:
int array[6]; 必须声明是确定数组大小
int array1[] ={1,2,3,4,5}; 或者直接初始化
动态内存申请:
malloc 没有初始化内存的内容,一般调用函数memset 来初始化这部分的内存空间
int *dil = (int*)malloc(1 * 1024 * 1024); //需要用指针来接收
memset(dil, 10, 1 * 1024 * 1024);
calloc 申请内存并将初始化内存数据为null
int *di2 = (int*)calloc(10, 4);
realloc 对malloc申请的内存进行大小的调整
char *a = (char*)malloc(10);
realloc(a,20);
这些申请的内存 使用完都需要通过 free(); 来释放内存
if (dil){
free(dil);
dil = 0;
}
if (di2){
free(di2);
di2 = 0;
}