C 指针变量声明的解释
什么是C 指针变量声明的解释,c,pointers,declaration,function-declaration,C,Pointers,Declaration,Function Declaration,什么是int*(cmp)(char*,char*)平均值 char*ptr1和char*ptr2 这个 是具有返回类型int*和两个类型为char*的参数的函数的声明 可以将声明符括在括号中。所以上面的函数声明也可以像这样重写 int * ( (cmp)(char*, char*) ); 这两个声明都相当于 int * cmp(char*, char*); 指向此类函数的指针声明如下所示 int * ( *p_cmp )(char*, char*) = cmp; 这些声明之间没有区别 ch
int*(cmp)(char*,char*)代码>平均值
char*ptr1代码>和char*ptr2代码>
这个
是具有返回类型int*
和两个类型为char*
的参数的函数的声明
可以将声明符括在括号中。所以上面的函数声明也可以像这样重写
int * ( (cmp)(char*, char*) );
这两个声明都相当于
int * cmp(char*, char*);
指向此类函数的指针声明如下所示
int * ( *p_cmp )(char*, char*) = cmp;
这些声明之间没有区别
char* ptr1;
char *ptr1;
char * ptr1;
这个
是具有返回类型int*
和两个类型为char*
的参数的函数的声明
可以将声明符括在括号中。所以上面的函数声明也可以像这样重写
int * ( (cmp)(char*, char*) );
这两个声明都相当于
int * cmp(char*, char*);
指向此类函数的指针声明如下所示
int * ( *p_cmp )(char*, char*) = cmp;
这些声明之间没有区别
char* ptr1;
char *ptr1;
char * ptr1;
1) 2)只是写作风格<代码>整数*(cmp)(字符*,字符*)代码>只是int*cmp(char*,char*)
:cmp
是一个函数,它接受两个参数,并且都是char*
类型,并返回指向int
的指针。2.没有区别。这是选择的问题。在第二种情况下,我更喜欢char*ptr2代码>因为在char*ptr2,ptr3
该ptr3
不是指针,它是char ptr3
由于它被称为cmp
(比较?),我倾向于认为签名实际上是int(*cmp)(char*,char*)
,即指向函数的指针,该函数返回一个int
,作为qsort
样式比较函数(as)的参数。如果您想了解如何编写这样一个函数,可能会很有用。@WeatherVane不能在一行上编写多个声明-这样做是众所周知的安全隐患。不仅仅是指针;我也见过像inta,b,c=0当程序员打算将所有项设置为零时,而不仅仅是c
.1)2)只是编写样式。1<代码>整数*(cmp)(字符*,字符*)代码>只是int*cmp(char*,char*)
:cmp
是一个函数,它接受两个参数,并且都是char*
类型,并返回指向int
的指针。2.没有区别。这是选择的问题。在第二种情况下,我更喜欢char*ptr2代码>因为在char*ptr2,ptr3
该ptr3
不是指针,它是char ptr3
由于它被称为cmp
(比较?),我倾向于认为签名实际上是int(*cmp)(char*,char*)
,即指向函数的指针,该函数返回一个int
,作为qsort
样式比较函数(as)的参数。如果您想了解如何编写这样一个函数,可能会很有用。@WeatherVane不能在一行上编写多个声明-这样做是众所周知的安全隐患。不仅仅是指针;我也见过像inta,b,c=0当程序员打算将所有项设置为零时,而不仅仅是c
。