C编程的细节(1)

来源:互联网 发布:易语言源码图标 编辑:程序博客网 时间:2024/06/04 18:31

1.整型浮点型数据在scanf输入时要加取地址符。

2.输出字符型、整型还是浮点型数据要选择相应的格式控制符。浮点型,整型的内部组织机制是不同的:有符号的整型第一位代表的是符号正负,而后面剩余部分按照二进制来存储;32位平台下的单精度浮点型数据存储分为1位符号位,8位指数位,23位位数位。输出数据时按照输出格式控制符来解析这四个字节,所以格式控制符与类型不同,数据会解析错误,而这不属于语法上面的问题。

3.switch语句与if.....else语句的效率问题。当选择分支大于四个时,switch语句中会形成跳转表,跳转表的形成使得switch语句效率大于同分支数量的if...else语句。

4.变量的生命周期问题。在一个程序中,操作系统为程序存储不同数据而划分出不同的区块,栈,堆,数据段,代码段等。

局部变量存储在栈中,依靠栈针的上下移动来控制变量的生存,而这些变量的生存都是由操作系统进行管理的,所以在其变量定义中的类型生命前有一个默认的anto自动管理。栈的大小接近1M

程序员由mallocrealloc申请的空间是在堆中开辟的。程序运行过程中进行申请,其生存周期由程序员自己管理,在使用完毕后通过free来释放该空间。堆的大小远远大于栈大小,由当前计算机内存大小决定。

全局变量,静态变量在数据段中进行申请,由管理其生存。

0 0
原创粉丝点击