旅游兼职网站建设,高校网站平台建设,网络分析的应用案例,设计logo公司一、无类型指针 #xff08;1#xff09;无类指针只包含内存地址#xff0c;不知道内存地址从存放数据是什么类型#xff1a; void *ptrNULL; #xff08;2#xff09;可以其他类型赋给无类型指针#xff0c;但是无类型指针赋给有类型指针会警号#xff1b; …一、无类型指针 1无类指针只包含内存地址不知道内存地址从存放数据是什么类型 void *ptrNULL; 2可以其他类型赋给无类型指针但是无类型指针赋给有类型指针会警号 不可通过*ptr获取里里面的内容如要赋值必须强制转化 p_ch(char *)ptr;//这样比较好 3void* 通常用在函数的参数中给函数参数带来很大的灵活性当函数参数是void*可以接受任意数据地址但无法判断是什么类型可以加个类型判断 void test(void *data,int type) { if(type1) { printf(%c\n,*((char*)data));//字符型 } else if(type2) { printf(%d\n,*((int *)data));//整型 } else if(type3) { printf(%d\n,((STU*)data)-age);//结构体型 } } 二、指针数组 1.定义一个数组专门存放整形指针相当于一维数组 int *p[5]; char (*pmenu)[10],menu[5][10] {aaa,bbbb,ccc,”dd,ee}; pmenumenu; for (i 0;i 5;i){ puts(pmenu[i]); } 2.定义指针专门指向包含5个元素的一维指针数组像当于二维数组 int (*p_array)[5]p; char *pmenu[5],menu[5][10] {aaa,bbbb,ccc,”dd,ee}; for (i 0;i 5;i) pmenu[i] menu[i]; for (i 0;i 5;i) puts(pmenu[i]); 3.函数指针常用 1定义 函数指针一个指针专门指向函数地址 p_fun定义一个函数指针指向int有返回值并且参数就一个整数函数 int (*p_fun)(int )NULL; 2赋值 把getMax函数地址赋给p_fun; p_funtest; 3调用这个函数 getMax(10);//方法1 p_fun(1200);//方法2 4.函数指针定义一个数组定义一个数组里面每个元素存放一个函数指针 //这里面存放5个 int (*p_funArray[5])(int){getMax,test,pos_win,reg_win,manager_win}; bp_funArray[2](a); 函数指针的例子
#includestdio.hint getMax(int a)
{
// printf(%d\n,a);printf(getMax!\n);return a1;
}
int test(int parm)
{printf(hello,world!\n);
// printf(%d\n,parm);return parm1;
}
int pos_win(int max)
{printf(pos_win!\n);return max1;
}
int reg_win(int max)
{printf(reg_win!\n);return max1;
}
int manager_win(int max)
{printf(manager_win!\n);return max1;
}int main()
{int a0,b0,c0;//定义一个数组里面每个元素存放一个函数指针//这里面存放5个int (*p_funArray[5])(int){getMax,test,pos_win,reg_win,manager_win};while(1){b;cp_funArray[b]();printf(b%d\n,b);// getch();}}