目录
拓展
1.C语言是一门编译型语言,C语言源代码都是文本文件,文件本身无法执行,必须通过编译器翻译和链接器的链接,生成二进制的可执行文件,可执行文件才能执行。
C语言代码是放在 .c 为后缀的文件中的,要得到最终运行的可执行程序,中间要经过编译和链接这两个过程。
一个工程一般都会有多个源文件组成;每个源文件(.c)单独经过编译器处理生成对应的目标文件(.obj文件);多个目标文件和库文件经过链接器处理生成对应的可执行程序(.exe文件)。
2.集成开发环境(IDE)
一、main函数
1.main函数也叫主函数,C语言的程序都是从main数开始执行的,main函数是程序的入口。
//第一个C语言程序
#include <stdio.h>
int main() //int表示 main函数在执行完后返回一个整型类型的值
{
printf("Hello world\n");
return 0; //返回 0
}
2.main函数有且仅有一个。
#include <stdio.h>
int main()
{
printf("宇宙第一帅\n");
return 0;
}
int main()
{
printf("宇宙第一丑\n");
return 0;
}
//运行时则会报错_error C2084: 函数“int main()”已有主体
3.main函数写法
void main()
{
...
}
void main(void)
{
...
}
int main()
{
...
}
int main(void) //void表示main函数不接受参数
{
...
}
二、printf函数
(f-format:格式化打印)
1.printf是一个库函数,它的功能是在标准输出设备(一般指屏幕)上进行信息的打印。
2.printf是库函数(库函数的使用需要包含头对应的文件),其头文件是 stdio.h(standard,input,output)——标准输入输出头文件。
三、库函数
注:https://cplusplus.com/reference/clibrary/
四、关键字
1.C语言中-关键字都有特殊的意义,因此程序员在自己创建的标识符中不能与关键字重复,同时关键字也不能自己创建。
2.C语言中32个关键字如下:
auto break case char const enum
continue do double else default
extern
float for goto if int long static
register return short signed sizeof
struct switch typedef union void
unsigned void volatile while
注:https://zh.cppreference.com/w/c/keyword
五、字符和ASCII编码
1.字符指类字形单位或符号,包括字母、数字、运算符号、标点符号和其他符号,以及一些功能性符号;C语言中字符是用单引号括起来的,指定字符的打印格式 %c。
2.计算机中所有的数据以二进制的形式存储,若将每个字符编一个二进制序列存储到内存中,这个二进制序列就叫做编码;美国国家标准学会(ANSI)出台了⼀个标准 ASCII 编码,C 语言中的字符就遵循了 ASCII 编码的方式。
3.对应的大小写字母(a~z—A~Z)的ASCII码差值是32。
4.在这些字符中,ASCII码值从0~31这32个字符是不可打印字符,无法打印在屏幕上观察。
注:https://zh.cppreference.com/w/cpp/language/ascii
六、字符串和\0
1.C语言中字符串是用双引号括起来的,指定字符串的打印格式 %s。
#include <stdio.h>
int main()
{
printf("HhAosocool\n");
printf("%s\n", "HhAosocool");
return 0;
}
2.字符串末尾隐藏一个 \0 转义字符,\0 字符是字符串的结束标志。因此在我们使用库函数 printf()打印字符串或者 strlen()计算字符串长度时,遇到\0就会自动停止。
例:"HhAosocool" - H h A o s o c o o l \0
代码如下:
七、转义字符
转变原来意思的字符
⚪ \n:换行符。
⚪ \?:书写连续多个问号使用,防止被解析为三字母词,新编译器无法验证。
(早期编译器)三字母词——? ? 加一个字符用以表示另外一个其他字符,例: ?? ) -- ]、?? ( -- [
⚪ \':表示字符常量 '。
⚪ \":表示一个字符串内部的双引号。
⚪ \t:制表符,光标移到下一个水平制表位,通常是下一个4/8的倍数。
⚪ \b:退格符,光标回退一个字符,但不删除字符。
⚪ \\:表示一个反斜杠,防止它被解释为一个转义序列符
⚪ \a:警报,使得终端发出警报声或者闪烁
⚪ \f:换页符,光标移到下一页
⚪ \r:回车符,光标移到同一行的开头
⚪ \v:垂直分隔符,光标移到下一个垂直制表位,通常是下一行的同一列
以下两种转义字符可理解为:字符的8进制或者16进制的表示
⚪ \ddd:d d d表示1~3个八进制数字
⚪ \xdd:d d 表示2个十六进制数字
⚪ \0:null 字符,代表没有内容。\0是\ddd转义字符的一种,用于字符串的结束标志,ASCII码值是0
注:https://zh.cppreference.com/w/c/language/escape
八、语句及其分类
C语言代码由一条一条的语句构成,可分为五类:
⚪空语句
#include <stdio.h>
int main()
{
;//空语句
return 0;
}
一般情况下,若需要一条语句,但是这个语句不需要做任何事,就可以写一个空语句。
⚪表达式语句
#include <stdio.h>
int main()
{
int a = 5;
int b = 0;
b = a - b;//表达式语句
printf("%d", b);
return 0;
}
⚪函数调用语句
#include <stdio.h>
int a(int x, int y)
{
return x + y;
}
int main()
{
printf("HhAosocool\n");//函数调用语句
int b = a(2, 3);//函数调用语句
return 0;
}
⚪复合语句(代码块)
#include <stdio.h>
void print(int a[], int b) //函数的大括号中的代码也构成复合语句
{
int i = 0;
for (i = 0; i < b; i++)
{
printf("%d ", a[i]);
}
}
int main()
{
int i = 0;
int a[10] = { 0 };
for (i = 0; i < 10; i++) //for循环的循环体的大括号中的就是复合语句
{
a[i] = 10 - i;
printf("%d\n", a[i]);
}
return 0;
}
⚪控制语句
控制语句用于控制执行流程,以实现程序的各种结构方式(C语言中:顺序结构、选择结构、循环结构),它们由特定的语句定义符组成,C语言有九种控制语句分别如下:
1.条件判断语句(分支语句):if语句、switch语句。
2.循环执行语句:for语句、while语句、do while语句。
3.转向语句:break语句、goto语句、continue语句、return语句。
九、注释
1.第一种如下:
①将注释放在/*...*/之间,内部之间可以分行;
/* 注释 */
/*
注释
*/
②注释也可插在行内
int a(int b /* 注释 */, int c);
注意:/*...*/不支持嵌套注释,/*开始注释后,遇到的第一个*/就会认为注释结束。
2.第二种如下:
将注释放在//后面,从双斜杠开始到行尾都属于注释;这种注释只能是单行,可以放在行首,也可以放在一行语句的结尾。
// 注释
注:切记两种注释不能放在双引号里面,这样会让注释成为字符串的一部分,解释为普通字符,失去注释作用。
3.编译时,注释会被替换成一个空格。