共用体:
对于结构体来说,结构体定义好之后,每个结构体数据的字节数是固定的,对于共用体来说,定义好以后,其所占空间为该共用体中最大的数据的大小。
共用体里每次存数据的瞬间为我们最后一次所赋的值,其他值被覆盖掉,共用体一般用于有临时数据需要处理时。
union stu
{
int num;
char name[20];
int score[3];
}student[3];
可以看到,共用体和结构体的定义方式基本相同,所区别就是前面的关键字struct变成union;
枚举:
关键字:enum
enum color
{
red,blue,yellow,black,white
}ch;
此时可以对red进行整型数据的处理,其值为0,其后数值递增1,若中途进行赋值,则其后所有数据的值亦递增1。枚举一般用于对已知的选项进行逐个判断。同时,该语句定义了一个枚举变量ch。
两种数据存储方式:
队列:先入先出,先到先处理。
栈:后入先出,先到后处理。
二分法:
#include<stdio.h>
void main()
{
int num,max,min,mid,a[10]={1,4,7,12,15,27,36,49,51,63};
max=9;min=0;
scanf("%d",&num);
while(max>min)
{
mid=(max+min)/2;
if(a[max]==num)
{
printf("%d\n",max+1);
break;
}
if(a[min]==num)
{
printf("%d\n",min+1);
break;
}
if(a[mid]==num)
{
printf("%d\n",mid+1);
break;
}
if(mid==max||min==min)
{
printf("not fount!");
break;
}
a[mid]>num?(max=mid):(min=mid);
}
}
关键字typedef
typedef int u32;
该语句意为int和u32等价,后续语句中可以同样使用
malloc(指针)函数:在内存中申请一个空间,与其对应的函数为free(指针)头文件为stdlib.h例:malloc(sizeof(stu));
链表: