C语言补充.docintf();说明:把f申明为一个函数,其返回值是一个整数。int*f();说明:先确定表达式*f()是如何进行求值的。首先执行的是函数调用操作符(),因为它的优先级最高。所以f是一个函数,它的返回值是一个指向整数的指针。int(*f)();说明:首先确定括号的含义。()是函数调用操作符,(*f)只起到聚组的作用,使间接访问在函数调用之前进行,则f成为一个函数指针,它所指向的函数返回一个整型值。int*(*f)();说明:f是一个函数指针,它所指向的函数返回一个整型指针。intf[];说明:f是一个整型数组。int*f[];说明:下标优先级更高,所以f是一个数组,它的元素类型是指向整型的指针。intf()[];说明:f是一个函数,它的返回值是一个整型数组。这个申明非法,因为函数不能返回数组。intf[]();说明:本意指f是一个数组,它的元素类型是返回值为整型的函数。但此申明非法,因为数组元素必须具有相同的长度,但不同的函数显然可能具有不同的长度。int(*f[])();说明:首先确定括号的含义和操作符执行顺序。*f[]首先求值,则f是一个元素为某种类型的指针的数组。()是函数调用操作符,则f表示一个数组,数组元素的类型是函数指针,它指向的函数返回值是一个整型值。int*(*f[])();说明:与上面类似。f是一个指针数组,指针所指向的类型是返回值为整型指针的函数。有如下的申明,intarray[12][31];请问array[4]是什么意思?sizeof(array[4])等于多少?array是一个有着12个数组类型元素的数组,每个数组类型元素又是一个有31个int型元素的数组,所以array[4]是array数组的第5个元素,这个元素是有31个int类型的数组。那么sizeof(array[4])=31*sizeof(int);有如下的申明,intarray[12][31];inti;表达式i=array[4][7];还可以替换成怎样的表示方法?i=*(array[4]+7); 或i=*(*(array+4)+7);int(*f)[31];说明:申明*f是一个拥有31个 int元素的数组,因此f就是一个指向拥有31个 int元素的数组的指针。请说出如下代码的编译运行结果,并说明原因:intmain(){ charc;c=‘1’; if(c==‘1’||c=’2’||c==‘3’) printf(“+++1\n”);else printf(“+++2\n”); return0;}说明:由运算法
C语言补充 来自淘豆网m.daumloan.com转载请标明出处.