C语言复习(上)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

重学C语言已经一月有余,做些我认为需要记录的知识点总结(上)
编译环境:Linux


提示:以下是本篇文章正文内容,下面案例可供参考

一、一些基础概念

#include <stdio.h>
程序员所编写的代码不是标准C代码,需要一段程序把它翻译成标准C代码,负责翻译的程序叫做预处理器,翻译的过程叫做预处理,需要被翻译的代码叫做预处理指令,以#开头的代码叫做预处理指令
#include 功能是导入头文件
#include <xxx.h>
<> 从系统指定路径查找头文件并导入
#include “xxx.h”
“” 先从当前的工作路径查找头文件,如果找不到再从系统指定路径查找并导入
stdio.h
头文件:以.h结尾,里面存放的是辅助性代码,绝大多数都是函数的说明

int main()
{
printf(“Hello World!\n”);
return 0;
}

main函数:
C语言以函数为单位管理代码,一个函数就是一段具有某一项功能的代码段
main函数是程序的执行入口,必须有且只能有一个
int 是一种数据类型,它表示main函数的执行结果是一个整数
return 功能有两个:
1、结束函数的执行
2、返回一个结果给函数的调用者
main函数的调用者是操作系统,它的返回值是给了操作系统的,它的值能反应出程序是如何结束的,一般有三类:
正数 出现异常 (别人的错误)
0 一切正常
负数 出现错误 (自己的错误)

printf/scanf 是标准库中的函数,负责输出数据、输入数据
printf(“想要输出的内容”);
转义字符:
键盘上一些无法直接打印显示的符号,用一些特殊的字符组合来表示,这种特殊的字符组合称为转义字符,\n 就是其中之一
\r 回到行首
\t 制表符,相当于Tab,用于输出格式对齐
\b 退格键
\a 铃响
\ 表示一个
%% 表示一个%
编译器
负责把人能看得懂的记录着代码的文件,翻译成计算机能看得懂的二进制文件,由预处理器、编译器、链接器组成
gcc是由GNU社区为了编译Linux内核代码而开发的一款免费的编译器
gcc常用的编译参数:
-E 只显示预处理的结果到终端
-std=gnu99 设置C99语法标准
-c 只编译不链接
-o 指定编译结果的名字 -oname -o name
-S 生成汇编代码
-I 指定头文件的加载路径 -I 加载路径
-Wall 尽可能多地产生警告
-Werror 把警告当错误处理
-l 指定要加载的代码库 -lm 使用数学库
C代码变成可执行文件的详细过程:
1、预处理 把源文件翻译成预处理文件
gcc -E code.c 显示预处理结果到终端
gcc -E code.c -o code.i 生成以.i结尾的预处理文件
2、编译 把预处理文件翻译成汇编文件
gcc -S code.i 生成以.s结尾的汇编文件
3、汇编 把汇编文件翻译成二进制的目标文件
gcc -c code.s 生成以.o结尾的目标文件
4、链接 把若干个目标文件合并成一个可执行文件
gcc a.o b.o c.o … 默认生成a.out可执行文件

C语言的文件类型:
.c 源文件
.h 头文件
.h.gch 头文件的编译结果文件,它会被优先使用
.i 预处理文件
.s 汇编文件
.o 目标文件
.a 静态库文件
.so 共享库文件
类型转换
只有相同类型的数据才能运算,如果类型不相同的数据需要先转换相同类型后再进行计算。
自动类型转换:
转换规则:
以不丢失数据为基础,可以适当地牺牲一些空间
1、字节少的向字节多的转
2、有符号的向无符号的转
3、整型向浮点型转
注意:char short如果与不同类型的数据运算时,会先提升为int类型后参与运算
强制类型转换:
(新类型名)数据;
这种方式有可能会丢失数据,慎重使用
这里就不过多摘录基础知识点了

二、数组

什么是数组:变量的组合,是一种批量定义类型相同变量的方式
定义: 类型名 数组名[数量];
int arr[5];

使用:数组名[下标];
下标:从零开始 范围:0~数量-1
arr[0] = 10 arr[4] *10

遍历:与for循环配合,使用循环变量当做数组的下标

初始化:类型名 数组名[数量] = {1,2,3,4…};
1、因为数组的值默认是随机的,一般为了安全起见,要对数组进行初始化
2、初始化的数据过多ÿ

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值