例:
#include
/**
1.定义int (*pf)(int x, int y);
2.赋值 pf = add;
3.引用 pf(3,5);
*/
int add(int x, int y){
return x+y;
}
main(){
int (*pf)(int x,int y); // 定义一个函数的指针指针的类型是返回值为int 接受的参数 int
pf =add;
printf("result=%d\n", pf(3,6));
system("pause");
}
十四、结构体:使用struct 定义结构体:
#include
//定义一个结构体
struct Student
{
char sex; //1
int age; //4
float score; //4
int id; //4
};
main(){
//
struct Student st={80,55.6f,10000,'F' };
//获取结构体的指针
struct Student* pst = &st;
printf("age=%d\n",st.age);
//结构体的长度
printf("结构体的长度%d\n",sizeof(st));
//通过指针获取结构体中的变量
printf("age=%d\n", (*pst).age);
//通过指针获取结构体中的变量 的第二种写法:
printf("age=%d\n", pst->age);
system("pause");
}
十四、联合体:
// 联合体的作用是声明一块公用的内存空间,长度跟公用的数据类型中最长的一个条目一致,
当多次为同一个联合体赋值时,会覆盖:
#include
main( )
{
struct date { int year, month, day;}today;
union { long i; int k; char ii; } mix;
// 联合体的作用是声明一块公用的内存空间
// 长度跟公用的数据类型中最长的一个条目一致
printf("date:%d\n",sizeof(struct date));
printf("mix:%d\n",sizeof(mix));
//下面的赋值,先定义的会被覆盖。
mix.i = 99;
mix.k = 18;
mix.ii = 'A';
printf("i=%ld",mix.i);
system("pause");
}
十五、枚举:
#include
enum WeekDay
{
Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday
};
int main(void)
{
//int day;
enum WeekDay day = Sunday;
printf("%d\n",day);
system("pause");
}
十六、typedef:
声明自定义数据类型,配合各种原有数据类型来达到简化编程的目的的类型定义关键字。
typedef int haha;//声明一个int型的数据类型
例:
#include
typedef int haha;
int main(void)
{
haha i = 3;
printf("%d\n",i);
system("pause");
return 0;
}