嵌入式筆試刷題專欄(第二天)
11.請你定義如下幾種函數(shù),函數(shù)沒有形參,但是有返回值類型,返回值類型(只要類型符合要求就行)要求如下
返回函數(shù)指針
int (*func1(void))(void);
返回指針數(shù)組
int *(*func2(void))[3];
返回?cái)?shù)組指針
int (*func3(void))[5];
返回函數(shù)數(shù)組指針
int (*(*func4(void))[2])(int);
11. 定義函數(shù):
- 返回函數(shù)指針的函數(shù):
- 返回指針數(shù)組的函數(shù):
- 返回?cái)?shù)組指針的函數(shù):
- 返回函數(shù)數(shù)組指針的函數(shù):
12.const char *a;
const *char a;
char *const a; 有什么不同
12. const 用法區(qū)別:
const char *a;
:指向常量字符,不能通過a
修改內(nèi)容。const *char a;
:語法錯(cuò)誤。char *const a;
:常量指針,指針本身不能修改,內(nèi)容可以改。
13.#define CALC(x,y) x*y+x
int main()
{
int a=CALC(2*3,3+2);
printf(“result=%d\n”,a);
return 0;
}
13. 宏展開結(jié)果:
#define CALC(x,y) x*y+x int a = CALC(2*3, 3+2); // 實(shí)際變?yōu)?2*3*3+2 = 18 + 2 = 20
輸出:result=20
14分析如下寫法的含義
第一題: void *(*(p)(int))[10];
函數(shù)名:p是函數(shù)名字
函數(shù)的形參: int
函數(shù)的返回值:void *[10] 返回的是一個(gè)指針數(shù)組
第二題: float (*(*p)(int,int,float))(int);
p是函數(shù)指針的名字
p指向的函數(shù)指針,參數(shù)是int,int,float
p指向的函數(shù)指針, 返回值類型是float (int),返回值也是個(gè)函數(shù)指針
第三題:typedef double (*(*(*p)())[10])();
p是函數(shù)指針的名字
p指向的函數(shù)指針,參數(shù)是空的
p指向的函數(shù)指針,返回值是double *[10]() 返回值是函數(shù)指針數(shù)組
第四題:int (*(*p())[10])();
函數(shù)名:p
函數(shù)的形參:空的
函數(shù)的返回值:int *[10]() 返回值是函數(shù)指針數(shù)組
14. 復(fù)雜聲明分析:
- 第一題:p 是函數(shù),參數(shù)為 int,返回 void * 指針數(shù)組。
- 第二題:p 是函數(shù)指針,返回值是函數(shù)指針,參數(shù)為 int,返回 float。
- 第三題:p 是函數(shù)指針,返回指向包含10個(gè) double() 函數(shù)指針的數(shù)組。
- 第四題:p 是
剩余60%內(nèi)容,訂閱專欄后可繼續(xù)查看/也可單篇購買
本專欄系統(tǒng)整理了嵌入式方向筆試中常見的知識點(diǎn)和高頻考題,涵蓋基礎(chǔ)理論、常用算法、C語言陷阱、操作系統(tǒng)原理、驅(qū)動(dòng)開發(fā)、常見外設(shè)通信協(xié)議(如 I2C/SPI/UART)、RTOS、Linux 內(nèi)核、以及實(shí)用電路知識等內(nèi)容。