Chinaunix首页 | 论坛 | 博客
  • 博客访问: 708012
  • 博文数量: 161
  • 博客积分: 2998
  • 博客等级: 少校
  • 技术积分: 1697
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-28 09:39
文章分类

全部博文(161)

文章存档

2012年(6)

2011年(120)

2010年(35)

分类: LINUX

2011-05-19 21:09:57

函数的形参部分是一个复制,如果要真正修改实参,必须通过指针的简介访问操作以访问需要修改的变量。
int f()[]
f是一个函数,它的返回值是一个整形数组,这是非法的,函数只能返回标量值,不能返回数组。
int f[]()
f似乎是一个数组,它的元素类型时返回值为整形的函数,但是是非法的。
数组元素必须具有相同的长度,但不同的函数显然可能具备不同的长度。
int (*f[])();
f肯定是一个数组,数组元素的类型是函数指针,它所指向的函数的返回值是一个整形值。
 
int f(int);
int (*pf)(int) = &f;
对于取地址,除了数组其他最好都要用取地址来赋予给指针。
初始化表达式中的取地址操作符是可选的,因为函数名都被使用时总是有编译器把他转化为函数指针,&只是显示说明了编译器将隐式执行的任务。
函数名f首先转化为一个函数指针,该指针指定函数在内存中的位置,然后,函数调用操作符调用该函数,执行开始于这个地址的代码。
阅读(600) | 评论(0) | 转发(0) |
0

上一篇:链表的技巧

下一篇:回调函数的少许理解

给主人留下些什么吧!~~