c语言指针
1.const和指针一起用。const修饰它之后的变量或指针符号,与数据类型无关
char buf[256]; char buf2[256]; char * const p = buf; //指针变量 "p" 是只读的。p的值不能更改。此时p=buf2;是错误的 char const *p = buf; //指针符号 "*" 是只读的。不能通过p修改p指向的内存,但可以将p指向其他内存地址。此时p[0] = 12;是错误的,但p=buf2;是正确的 const char *p = buf; //和char const *p相同
2.指向数组的指针 和 指针数组
char (*p)[20];//p是一个指针,指向一个类型为char,元素数量为20的数组 char *p[20];//p是一个指针数组,其元素为指针型数据
3.函数指针
char * (*func)(int ); //参数为int类型,返回值为char类型指针 的函数指针
typedef和函数指针
double * (*func_array[10])(int); //数组,每个元素指向一个函数的指针,该函数的形参为int,返回值为double指针
typedef double * (*FUNC)(int);//返回double指针,使用int形参的函数指针 FUNC func_array[10]; //函数指针数组
double * ((*func_array)[10])(int); //指针,指向一个10个元素的数组,数组的元素是函数指针,函数的形参是int,返回值是double指针
typedef double * (*FUNC)(int);//返回double指针,使用int形参的函数指针 FUNC (*func)[10];//指针,指向有10个元素的数组,数组的每个元素是FUNC类型
//函数指针作为函数的形参和返回值 int (*)(int) (*func)( double(*)(double) ); typedef int (*FUNC_RET)(int); typedef double (*FUNC_ATTR)(double); FUNC_RET func(FUNC_ATTR);
浙公网安备 33010602011771号