嵌入式C开发基础题(10)
来源:互联网 发布:sql语句if判断 编辑:程序博客网 时间:2024/06/04 19:05
第10题:考查形式参数,实际参数,指针和数组
#include <stdio.h>void f1(int *, int);void f2(int *, int);void(*p[2])( int *, int);void main(){int a;int b;p[0]= f1;p[1]= f2;a=3;b=5;p[0](&a, b);printf("%d\t%d\t" , a ,b);p[1](&a, b);printf("%d\t%d\t \n" , a ,b);}void f1( int* p , int q){int tmp;tmp=*p;*p= q;q=tmp;}void f2( int* p , int q){int tmp;tmp=*p;*p= q;q=tmp;}
这段程序的输出是:
(a)5 5 5 5(b) 3 5 3 5 (c) 5 3 5 3 (d) 3 3 3 3
解答:
很显然选a.
f1交换*p和q的值,f1执行完后,*p和q的值的确交换了, 但q的改变不会影响到 b的改变, *p实际上就是a
所以执行f1后, a=b=5
这道题考查的知识范围很广,包括typedef自定义类型,函数指针,指针数组
void(*p[2 ]) ( int *, int);
1)定义了一个函数指针的数组p,
2)p有两个指针元素. 元素是函数的指针;
3)函数指针指向的函数是一个带2个参数,返回void的函数,所带的两个参数是指向整型的指针和整型
- 嵌入式C开发基础题(10)
- 嵌入式C开发基础题(1)
- 嵌入式C开发基础题(2)
- 嵌入式C开发基础题(3)
- 嵌入式C开发基础题(4)
- 嵌入式C开发基础题(5)
- 嵌入式C开发基础题(6)
- 嵌入式C开发基础题(6)
- 嵌入式C开发基础题(8)
- 嵌入式C开发基础题(9)
- 嵌入式C开发基础题(12)
- 嵌入式C开发基础题(14)
- 嵌入式C开发基础题(13)之C的变长参数
- 嵌入式C开发基础题(11)之自减操作
- 嵌入式开发学习之基础编程语言 C 语言
- 嵌入式软件开发培训笔记——c编程基础
- 嵌入式开发之c基础第一天笔记
- 嵌入式开发之c基础第二天学习笔记
- iOS去掉icon的(自带磨光效果)gloss effects
- android APP 中微信分享功能实现 的总结
- callBackFunc
- Linux man命令的使用方法
- 【SFS】Could not create a validated object, cause: ValidateObject failed
- 嵌入式C开发基础题(10)
- Ubuntu:12.04安装虚拟工具VMware Tools
- 操作系统
- mysql-5.0图文安装教程
- 笔记
- Linux 系统内核空间与用户空间通信的实现与分析[转载]
- windows eclipse tomcat 配置远程调试
- iOS学习之iOS沙盒(sandbox)机制和文件操作(一)
- 身为大学生,不可不知道的就业常识