3 回答

TA贡献1816条经验 获得超6个赞
这是一个函数的指针。它要指向一个函数才能有用。指向一个函数之后可以用它来代替该函数。之后使用这个指针相当于使用该函数。
int (*f)()则是一个函数指针。指向一个 int f() 这样的函数。比如有函数:
int get1() { return 1; }
int get2() { return 2; }
int main(){
int (*pf)();// pf是一个函数指针,参数为空,返回int
pf = get1;// pf保存 get1函数入口地址。 注意,不是 pf = get1() ,后者是一个函数调用
cout<< pf()<< endl; // 1
pf = get2;// pf保存 get2的入口地址
cout<< pf() << endl; // 2
}
C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括一些类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。
扩展资料:
C语言语言特点:
1、具有结构化的控制语句
C语言是一种结构化的语言,提供的控制语句具有结构化特征,如for语句、if⋯else语句和switch语句等。可以用于实现函数的逻辑控制,方便面向过程的程序设计。
2、丰富的数据类型
C语言包含的数据类型广泛,不仅包含有传统的字符型、整型、浮点型、数组类型等数据类型,还具有其他编程语言所不具备的数据类型,其中以指针类型数据使用最为灵活,可以通过编程对各种数据结构进行计算。
3、丰富的运算符
c语言包含34个运算符,它将赋值、括号等均视作运算符来操作,使C程序的表达式类型和运算符类型均非常丰富。
4、可对物理地址进行直接操作
C语言允许对硬件内存地址进行直接读写,以此可以实现汇编语言的主要功能,并可直接操作硬件。c语言不但具备高级语言所具有的良好特性,又包含了许多低级语言的优势,故在系统软件编程领域有着广泛的应用。

TA贡献1831条经验 获得超4个赞
这就是传地址进去 比如 数组 a的 内存地址模型如:
0012FF00--0012FF03 :这是a[0]=1
0012FF00--0012FF03 :这是a[1]=2
0012FF00--0012FF03 :这是a[2]=3
0012FF00--0012FF03 :这是a[3]=4
0012FF00--0012FF03 :这是a[4]=5
0012FF00--0012FF03 :这是a[5]=6
0012FF00--0012FF03 :这是a[6]=7
0012FF00--0012FF03 :这是a[7]=8
你调用f 其实 就 把 &a[3] =0012FF00 传给了 f(int *a,int n) 里面的a,把3传给了n
函数实现:
最后返回 s,那 s 是怎么得来的? 初值 为1 ,经过 循环计算,得到最后的 s
i=0 s=s*(*a++)=1*(4) 这里要注意 这个 *的作用 是 到它后面的跟的地址里面去取值,也就是 到 0012FF00 里面取值 ,得到的是 4,然后后面的估计自己也能分析出来了,,如果没出错的话,得到的应该是 4*5*6=120 吧。
- 3 回答
- 0 关注
- 74 浏览
添加回答
举报