C基础知识

1.由gcc编译的C语言程序占用的内存分为哪几个部分?

答:栈区:存放函数的参量、局部变量。

       堆区:提供程序员动态申请的内存空间

       全局(静态)区(static):存放全局变量和静态变量

       程序代码区:存放函数体的二进制代码和字符串常量

2.全局变量和静态变量的区别?

答:①全局变量存储在静态区,进入main函数之前就被创建,生命周期为整个源代码

       ②局部变量在栈区中分配,在函数被调用时才被创建,在函数退出时销毁,生命周期为函数内

3.头文件中的ifndef...define...endif是什么作用?

答:防止头文件被重复多次的包含。

4.#include <filname.h>和include "filename.h"有什么区别?

答:前面用来包含库里面的头文件,后面的用来包含自定义的头文件。

5.是否了解原码、反码和补码?

答:原码:一个十进制数转化成的二进制数就是这个十进制数的原码。

       反码:正数码与原码相同,负数为1变0,0变1.

       补码:正数的补码和原码相同,负数的补码为反码加一。

6.数组和指针的区别?

答:①数组:数组是用于存储多个类型相同数据的集合。

       ②指针:指针相当于一个变量,但是他和普通变量不一样,他存放的相当于是其他变量在内存中的地址。

       区别:①赋值:同类型的指针变量可以相互赋值;数组不行,只能一个一个元素的赋值或者拷贝。

                 ②存储方式:数组:数组在内存中是连续存放的,开辟的是一片连续的空间。数组是根据数组的下方进行访问的,数组的存储空间,不是在静态区就是在栈区。

                                      指针:指针本身就是一个变量,作为局部变量时存储在栈区。

                  ③求sizeof:数组所占空间的内存大小:sizeof(数组名)

                                      数组的元素个数:sizeof(数组名)/sizeof(数据类型)

                                      无论指针的类型是什么,32位平台永远是4,64位平台永远是8。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值