萌新的学习笔记,写错了恳请斧正。
目录
C语言如何将代码变成可执行程序?
头文件与源文件
主函数
库函数
关键字
ASCII码
转义字符
语句
注释
C语言如何将代码变成可执行程序?
代码.c—编译→目标文件.obj—链接→可执行程序.exe
头文件与源文件
C语言中.c结尾的是头文件,.h结尾的是头文件(header)。
我们一般写代码是写源文件,把函数变量啥的写进去
头文件一般是提前给好的,包括我们写代码用到的各种函数或者别的什么东西的定义,是告诉编译器这些玩意是干啥的。
主函数
C语言程序都是从主函数(main)开始执行的
每个程序有且只有一个主函数
下面程序为例:
#include <stdio.h>
int main() //int表示main函数执行结束时应返回一个int类型的数,即整数
{
printf("Hello world!\n"); //将Hello world打在公屏上
return 0; //此处返回一个整数,一般规定为0表示程序执行成功
}
库函数
上面的示例中使用了printf来把Hello world打在公屏上
那么printf是什么呢?printf是一种库函数。
那么库函数是什么呢?
库函数是C语言为了程序员方便规定的一些基础的函数,方便我们直接使用。
C语言规定了一系列基础的函数,这些函数组成的函数库成为标准库
这些库函数的声明(类似定义)包含在对应的头文件中
这些函数使用前必须在程序中包含对应的头文件
比如上方示例程序中printf是stdio.h头文件中的,所以在程序前面有
#include <stdio.h>
stdio.h是很常用的头文件,std代表standrad(标准),i代表input(输入),o代表output(输出)
所以stdio就是规定了标准输入输出函数的头文件
那怎么知道各种头文件包含啥函数嘞?
这个网站→头文件大全
关键字
上面的实例程序中还有没讲到的内容,那就是int、return,这些是啥嘞?
在C语言中,有一些保留的词,比如上面的int、return,这些词被规定了特殊的含义,它们被称为关键字/保留字。
我们自己定义一些名字的时候,不能和这些关键字重复,会报错。
那我们怎么知道有哪些关键字呢?
这个网站→关键字大全
ASCII码
计算机对各种字符的二进制编码
这个网站→ASCII码大全
ASCII码我们需要知道:
- ASCII码一共0~127共128个编码
- 字符A~Z的ASCII码值从65~90
- 字符a~z的ASCII码值从97~122
- 数字字符0~9的ASCII码值从48~57
- 换行\n的ASCII值是10
- 0~31这32个字符是不可打印字符
转义字符
差点忘了,上面示例中printf里除了“Hello world!”还有一个“/n”
“/n”是一种转义字符
C语言中,有一种特殊的字符叫转义字符
顾名思义,就是把原本意思改变了的字符
转义字符都以“\”开头,共有如下几种形式:
- \' 单引号字符,避免被认为是有编程意义的单引号
- \" 双引号字符,避免被认为是有编程意义的双引号
- \\ 反斜杠字符,避免被认为是转义字符的标志
- \a 警报:终端发出提示音或闪烁
- \b 退格:backspace不是删一个字符,是光标回退一格,但是下一个字符将覆盖回退路过的这个字符导致效果如同删去一个字符
- \f 换页符:没啥用了,效果跟垂直制表符差不多
- \n 换行符:符如其名
- \r 回车符:把光标移到本行开头
- \t 水平制表符tab:光标右移一个制表位
- \v 垂直制表符:光标到下一行同一位
- \ddd 这边ddd不是真的ddd,而是1~3个八进制数字,代表对应的ASCII码,比如\66就是6
- \xdd 这个和上面一样,只不过dd这里是16进制数,比如\x3f是?
- \? ‘?’字符,避免被认为是三字母词,但现在没有三字母词,所以没啥意义了
语句
C语言语句以";"结尾,有如下几种
- 空语句
; //一个分号就是一个空语句,没有实际意义
- 表达式语句
int a = 1;
int b = 0;
b = a + 1; //这就是表达式语句,一个表达式
- 函数调用语句
printf("阿巴阿巴\n"); //调用了函数就是调用函数语句
- 复合语句
#include <stdio.h>
int main()
{
printf("Hello world!\n");
return 0;
}
//一个大括号里的就是一个代码块,即一个复合语句(可以嵌套)
- 控制语句
C语言一共有9种控制语句,有如下几类:
- 条件判断:if、switch
- 循环执行:do while、while、for
- 转向:break、goto、continue、return
注释
在“//”后本行内的内容为注释,或在“/*”后“*/”前的内容也是注释
注释的内容会被编译成一个空格,也可能对代码产生影响,所以不是真的能随便乱放注释