完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
1、输出2,5 【注意指针指向的类型,操作指针的时候才知道指针移动的字节】
int main(){ inta[5]={1,2,3,4,5}; int *ptr=(int*)(&a+1);//a指向int类型,&a指向数组类型 printf("%d,%d",*(a+1),*(ptr-1)); } 2、死锁 产生死锁的必要条件:(1)互斥条件(资源一次只允许一个进程访问);(2)不可剥夺条件(进程使用资源未完成之前,不能强行夺走);(3)请求和保持条件(一个进程已经占有一个资源,还想获取另一个资源);(4)循环等待条件。 产生死锁的原因:资源竞争,进程推进顺序错误。 死锁的处理: 预防死锁:通过设置某些限制条件,去破坏产生死锁的四个必要条件中的一个或几个条件,来防止死锁的发生。 避免死锁:在资源的动态分配过程中,用某种方法去防止系统进入不安全状态,从而避免死锁的发生。 检测死锁:允许系统在运行过程中发生死锁,但可设置检测机构及时检测死锁的发生,并采取适当措施加以清除。 解除死锁:当检测出死锁后,便采取适当措施将进程从死锁状态中解脱出来。 3、main函数的返回值:C标准要求定义 int main(); 默认缺省的也是int 。返回值一般用来指示程序运行是否正确。 4、要对绝对地址0x100000赋值,我们可以用 (unsigned int*)0x100000 =1234; 那么要是想让程序跳转到绝对地址是0x100000去执行,应该怎么做? 答: ((void (*)())0x100000)(); 5、如下代码输出? unsigned short A = 10; \10自身是有符号数,10u才是无符号数 printf("~A = %un", ~A); \出现无符号数的高位扩展,高位补符号位 char c=128; \字符类型表示范围:-128~127 printf("c=%dn",c); \出现有符号数的位数扩展,高位补符号位 答案:4294967285 和 -128。 6、用两个栈实现一个队列。 7、以下代码输出25 7 #define SQ(a) (a)*(a) int main(){ int a = 5; int b = SQ(a++); printf("%d %d",b,a); } |
|
|
|
只有小组成员才能发言,加入小组>>
791 浏览 0 评论
1151 浏览 1 评论
2527 浏览 5 评论
2860 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2710 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1070浏览 3评论
193浏览 2评论
455浏览 2评论
368浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
453浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 10:35 , Processed in 1.030927 second(s), Total 79, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号