c语言面试测试岗位,进行测试! 3个嵌入式C语言面试问题

8c3554a03bfadca97bcd5c50ab1d9e6d.png

问题一:

程序编译的过程?

问题2:

++ i和i ++之间的区别

问题3:

34681c5bb6cc958f0465dbac41e7aa5f.png

使用C语言反转字符串.

问题1的答案

预处理: 预处理等效于根据预处理命令组装新的C程序,但扩展名通常为i.

编译: 将获取的i文件转换为汇编代码. 的文件.

汇编: 将汇编文件转换为机器指令,并将其打包为O文件,该文件可以重新定位目标程序. 该文件是二进制文件,字节编码是机器指令.

20300543243073143684804014531_300.png

链接: 将其他引用的O文件合并到程序所在的O文件中,并进行处理以获得最终的可执行文件.

问题2的答案

(1),整数++ i和i ++的区别

d094f2ad2ba526f49fdb041ff3ba5aa3.png

在示例中,第7行和第8行具有相同的效果,只需将变量i加1. 此时,i的值增加到9,然后第10行中的变量a首先获得i的值(即9),然后将i加1,然后将11中的变量i加1,然后将获得的值分配给b,因此b的值为11.

23.jpg

(2),(* p)++和++(* p)之间的区别

e75fec7cfdba04fb0b74f72981c4c9f6.png

对于第8行中的操作数p,*和++具有相同的优先级,但是根据它们的正确关联性,我们可以认为,在此表达式中,++的优先级高于*,即* p ++为相当于*(p ++).

对于第10行中的操作数pc语言多线程面试题,它只有一个运算符++,因此首先计算++ p以获得结果,然后间接进行操作.

(3)* p ++和* ++ p之间的区别:

5.jpg

9700d8f52a17d206eb70bc1983e179c5.png

对于第8行中的操作数p,*和++具有相同的优先级,但是根据它们的正确关联性c语言多线程面试题,我们可以认为,在此表达式中,++的优先级高于*,即* p ++为相当于*(p ++).

对于第10行中的操作数p,它只有一个运算符++,因此首先计算++ p以获得结果,然后间接进行操作.

回答三个问题:

f2ee49887448a511c8cd20fff02be265.png

返回搜狐了解更多

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/jisuanjixue/article-191720-1.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值