C int*array[99]={0},*u是做什么的? bool校验子数组和(int*nums,int-numsize,int-k){ int i,s,found=0; e_t buff[10000]; int n; e_t*set[SZ]={0},*e; put(set,&buff[n++],0,-1); s=0; 对于(i=0;iidx>=2){ 发现=1; 打破 } }否则{ put(set,buff[n++],s,i); } } 发现退货; }

C int*array[99]={0},*u是做什么的? bool校验子数组和(int*nums,int-numsize,int-k){ int i,s,found=0; e_t buff[10000]; int n; e_t*set[SZ]={0},*e; put(set,&buff[n++],0,-1); s=0; 对于(i=0;iidx>=2){ 发现=1; 打破 } }否则{ put(set,buff[n++],s,i); } } 发现退货; },c,C,什么是e_t*set[SZ]={0},*e正在做什么e_t是一种用户定义的类型,但我认为这并不重要e不是我所知的全局范围内任何地方定义的指针,我尝试了以下方法: int *array[5] = {0}, *u; 并且没有给出语法错误。第一部分,即int*数组[5]={0}将该数组的所有五个元素初始化为0。但是*u的目的是什么?你不能把一个数组分配给其他东西,对吧,它是地址,不是指针。而u甚至从来没有被定义过,所以,我想会出现某种命名错误 提前谢谢你的帮助 int *array[5] = {0}

什么是
e_t*set[SZ]={0},*e正在做什么
e_t
是一种用户定义的类型,但我认为这并不重要
e
不是我所知的全局范围内任何地方定义的指针,我尝试了以下方法:

int *array[5] = {0}, *u;
并且没有给出语法错误。第一部分,即
int*数组[5]={0}
将该数组的所有五个元素初始化为0。但是
*u
的目的是什么?你不能把一个数组分配给其他东西,对吧,它是地址,不是指针。而u甚至从来没有被定义过,所以,我想会出现某种命名错误

提前谢谢你的帮助

int *array[5] = {0}, *u;
是两个
int
对象的声明。第一:

int *array[5] = {0}
通过使用“通用初始值设定项”
{0}
将指向
int[5]
的指针数组(表示指向
int
的5个指针数组)声明为
NULL
。等效但更直观的初始化是:

int *array[5] = {NULL}
,“
在这里只是一个分隔符,它允许第二个声明
*u
包含在同一行中,而不需要单独的
int*u声明

(不要与逗号运算符混淆,逗号运算符只会丢弃最后一个表达式的最后一个
,“
左侧的表达式。请参阅--thank you)

因此:

声明指向
int
的单个(未初始化)指针

是两个
int
对象的声明。第一:

int *array[5] = {0}
通过使用“通用初始值设定项”
{0}
将指向
int[5]
的指针数组(表示指向
int
的5个指针数组)声明为
NULL
。等效但更直观的初始化是:

int *array[5] = {NULL}
,“
在这里只是一个分隔符,它允许第二个声明
*u
包含在同一行中,而不需要单独的
int*u声明

(不要与逗号运算符混淆,逗号运算符只会丢弃最后一个表达式的最后一个
,“
左侧的表达式。请参阅--thank you)

因此:


声明指向
int
的单个(未初始化)指针。它类似于键入:

int x, y;
但请注意键入以下内容时的类型:

int a,  *b,  **c;
/*  ^    ^     ^
*  int  int*  int**
*/
所以

int *array[5] = {0}, *u;
                   /* ^ is pointer to int */

它类似于键入:

int x, y;
但请注意键入以下内容时的类型:

int a,  *b,  **c;
/*  ^    ^     ^
*  int  int*  int**
*/
所以

int *array[5] = {0}, *u;
                   /* ^ is pointer to int */
是两个对象的声明
set
是指向
e\u t
的指针数组,而
e
是指向单个
e\u t
的指针。也可以写为:

e_t *set[SZ] = {0};
e_t *e;
是两个对象的声明
set
是指向
e\u t
的指针数组,而
e
是指向单个
e\u t
的指针。也可以写为:

e_t *set[SZ] = {0};
e_t *e;

e_t*set[SZ]={0},*e
应理解为“程序员特此声明以下类型为
e_t
:集合
中每个
SZ
元素指向的对象;
e
指向的对象”


={0}
使
集合中的每个元素初始化为空指针-第一个显式指针,其余的隐式指针。

e_t*set[SZ]={0},*e
应理解为“程序员特此声明以下类型为
e_t
:集合
中每个
SZ
元素指向的对象;
e
指向的对象”


={0}
导致
集合
中的每个元素被初始化为空指针-第一个显式,其余的隐式。

因此星号绑定到变量名,而不是类型
int
bool
本身,对吗?所以像
intx,*y,z,**t
声明int类型的变量
x
z
,指向int的指针类型的
y
,以及
int**
类型的
t
(指向int指针的指针),对吗?这就是为什么
*u
不是指向int型指针的指针?因此星号与变量名绑定,而不是类型
int
bool
本身,对吗?所以像
intx,*y,z,**t
声明int类型的变量
x
z
,指向int的指针类型的
y
,以及
int**
类型的
t
(指向int指针的指针),对吗?这就是为什么
*u
不是指向int的指针?