C语言面试

gcc的编译过程

  1. 预处理:头文件包含、宏替换、条件编译、删除注释
  2. 编译:主要进行词法、语法、语义分析等,检查无误后,将预处理好的文件编译成汇编文件
  3. 汇编:将汇编文件转换成二进制文件
  4. 链接:将项目中的各个二进制文件+所需的库+启动代码链接成可执行文件

内存的最小存储单位和内存的最小计量单位

  1. 内存的最小存储单位是二进制位
  2. 内存的最小计量单位是字节

#include<> 与 #include“”区别

  1. include<>到系统指定目录寻找头文件
  2. include“”先到项目所在目录寻找头文件,如果没有找到再去系统指定的目录下查找

变量的命名规则

  1. 变量名的开头必须是字母或者下划线,不能以数字开头

变量的声明与定义的区别

  1. 变量的声明不需要建立存储空间
  2. 变量的定义需要建立存储空间

C语言中有符号和无符号的区别

  1. 有符号:数据的最高位是符号位,0表示正数,1表示负数
  2. 无符号:数据的最高位也是数据位

补码

  1. 在计算机系统中,数值统一用补码来表示和存储。
  2. 使用补码可以将符号位与数值位统一计算
  3. 加法减法也可以统一处理
  4. 数0的补码表示方法是唯一的
  5. 正整数的补码:是其二进制表示,与原码相同
  6. 负整数的补码:将其原码除符号位外的所有位取反后加1

[+0]补=[+0]原=00000000
[-0]补 = 10000000->11111111+1=00000000

数组

  1. 同一个数组中所有的成员都是相同的数据类型
  2. 数组中的所有成员内存地址是连续的

数组的分类

  1. 静态数组:例如int a[5];确定了数组的大小,在程序运行时不能更改数组的大小。
  2. 动态数组:int * a = (int *)malloc(sizeof(int)*5);主要是在堆区申请的空间,数组的大小在程序运行过程中可以更改。

一维数组的不初始化、部分初始化、完全初始化

  1. 不初始化:数组元素的内容为随机数
  2. 部分初始化:未初始化的部分自动补0
  3. 完全初始化:数组元素为初始化的元素
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

饼干饼干圆又圆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值