#include stdio.h
int main()
{
int i = 0, j = 0;
}
printf("\n");
}? ? ?
return 0;
int i = 0,j = 0;
扩展资料:
函数指针的声明方法为:
返回值类型 ( *?指针变量名) ([形参列表]);
其中,"返回值类型"说明函数的返回类型,"(指针变量名 )"中的括号不能省,括号改变了运算符的优先级.若省略整体则成为一个函数说明,说明了一个返回的数据类型是指针的函数,后面的"形参列表"表示指针变量指向的函数所带的参数列表.例如:
int func(int x); /* 声明一个函数 */
int (*f) (int x); /* 声明一个函数指针 */
f=func; /* 将func函数的首地址赋给指针f */
或者使用下面的方法将函数地址赋给函数指针:
f = func;
赋值时函数func不带括号,也不带参数,由于func代表函数的首地址,所以呢经过赋值以后,指针f就指向函数func(x)的代码的首地址.
参考资料:
百度百科-函数指针
如果你要问为什么可以这么转,那其实C语言怎么转都行,只要程序员自己知道自己在做什么..
数组名就是指针,例如:
void?pr(char *p)
printf(p);
void main(void)
char s[] = "abc";
pr(s);
注意事项
非数组类的声明尽量以指针的方式进行比较好.倘若一个指针指向的内存并不是一个数组,那么采用数组名的声明方式或许就会给人产生错误的引导.类似的,如果指向的是一个数组区域,则会给人以更加丰富的信息.例如:
int main(int argc,char* argv[])
/* code here */
与
int main(int argc,char** argv)
两种方式完全等价,但是前面一种能够更清晰地看出:这个参数是指向某个元素起始地址的指针,而后面的这种方式则不能够直观地看出这种含义.
例:
#includestdio.h
void?fact(int?*p,?int?n)
for(i?=?0;?i?n;?◆◆i)
printf("%d?",?p?◆?i);
int?main()
printf("%d?",?a[i]);
return?0;
以上就是土嘎嘎小编为大家整理的c语言数组指针传递给函数相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!