目录
一、C语言是什么 & C语言的历史 & C语言形成可执行文件的过程 & 集成开发环境
2、参数多了void,表示main函数没有参数,和什么都不写一样
一、C语言是什么 & C语言的历史 & C语言形成可执行文件的过程 & 集成开发环境
(一)C语言是什么
C语言是人与计算交流的语言,是众多计算机语言之一。
(二)C语言的历史
前身是B语言,C语言最初是作为Unix系统的开发工具,随着时间的发展(在1988年起)越来越规范。
(三)C语言形成可执行文件的过程
C语言是一门编译型计算机语言,通过编译和链接才可执行。 (我们手敲出来的C语言代码对于计算机来说是 “谜语人”,要翻译和加工计算机才懂)
1、源文件
编辑 (我们用手敲)出来的文本代码(.c文件)为源文件
2、目标文件
源文件被编译器编译(源文件被翻译成计算机可以看懂的文件)之后,形成的文件(.obj文件)。
注:每个源文件都是被编译器单独处理的
3、可执行文件
多个目标文件和库文件经过连接器处理,生成对应的二进制可执行程序(.exe文件→鼠标双击就可以运行)。
注:库文件是预先编写好的代码的集合,以二进制形式储存,包含了各种函数和数据结构(如:标准C库:stdio.h、stdlib.h、math.h等;操作系统接口库 Windows API等;网络库Socket等)
(四)集成开发环境
集成开发环境(IDE),包括编辑器、编译器、调试器和图形用户界面等。
二、源文件和头文件
".c"为后缀的文件是源文件,".h"为后缀的文件是头文件。
三、第一个C语言程序 & 如何运行
#include<stdio.h>
int main()
{
printf("我来!");
return 0;
}
在vs2022中代码运行的快捷键:Ctrl+F5
四、函数和main函数
(一)函数
从本质意义上说,函数是完成一定功能的模块
(二)main函数
主函数又称main函数,一个程序有且只有一个,程序从主函数开始运行且在主函数结束
五、printf和库函数
(一)printf
#include<stdio.h>
int main()
{
int n = 10;
printf("我又来!");
printf("输出这个玩意:10");
printf("输出这个玩意:%d",n);
return 0;
}
printf是库函数中的一种,作用:把双引号中的内容进行输出;
"%d"是占位符,会和后面的值进行交换;
使用库函数时,需要包涵头文件:
#include<stdio.h>
(二)库函数
是预先编写好的函数的集合,提供了各种功能,如输入/输出操作、数学计算、字符串处理等,供程序员在编写C程序时重复使用。
注:C语言本身没有输入/输出,是库函数实现的。
六、关键字
具有特殊含义的保留字,用于表示语法结构和控制流程。
七、字符和ASCII编码
(一)字符
C语言中字符是用单引号括起来的,如:'A','@','b'等。
单字符的打印可以用占位符 "%c" 来指定格式:
#include<stdio.h>
int main()
{
printf("打印这个字符:%c",'a');
return 0;
}
(二)ASCII编码
ASCII编码是一种字符编码标准,用于将文本字符映射为计算机可识别的数字形式,其中每个字符对应一个7位的二进制数值。
有几个注意点:
a~z是97~122;
A~Z是65~90;
小写字母的ASCII码值更大,且相差32码值;
数字0~9是48~57;
0~31这32个字符是不可打印字符,无法在屏幕上打印显示。
八、字符串和“\0”
用双引号括起来的一串字符,就被成为字符串,如:"abcdef"
在"abcdef"中,真正的内容为:a,b,c,d,e,f,以及隐藏的 \0,这个转义字符\0是字符串的结束标志,打印字符串时用"%s"来指定形式:
#include<stdio.h>
int main()
{
int arr1[] = "abc";
int arr2[] = {'a','b','c'};
int arr3[] = {'a','b','c','\0'};
printf("%s\n",arr1); //输出abc
printf("%s\n",arr2); //输出abc及继续向后找到\0为止的内容
printf("%s\n",arr3); //输出abc
return 0;
}
若字符数组无手动输入\0,字符串数组和字符数组按字符串打印结果完全不同
九、转义字符
反斜杠(\)开头的特殊字符序列,改变了反斜杠后面字符的意思
注:转义字符也是字符!
十、语句
表达式加一个分号就构成一条语句
笼统的知道是语句就行。
分类:
空语句 —— 一个分号
表达式语句 —— 表达式(手敲出来的代码)+ 分号
i = i + 1 这是表达式
i = i + 1; 这是语句
函数调用语句 —— 函数调用 + 分号
复合语句 —— 成对括号中的代码
控制语句 —— 分支、循环、转向(break、goto、continue、return)语句
十一、注释
两种方法:
① /* 代码 */ → 不能嵌套使用
② // 代码
写注释的含金量就不多说了。
十二、我觉得有意思的点
(一)main函数的不同写法
1、古老的写法
void main()
{
printf("这是一种古老的写法");
}
2、参数多了void,表示main函数没有参数,和什么都不写一样
int main(void)
{
printf("表示空参,与下面写法一样");
return 0;
}
int main()
{
printf("写法与我一样,我更简单");
return 0;
}
3、想要表示main函数参数则写上,否则则不写
int main(int argc, char* argv[])
{
return 0;
}
(二)printf的全称
print formatted,格式化输出
(三)占位符
在printf输出函数的双引号中,是占个位置,输出时会与后面的内容调换
(四)监视窗口的调出
先按F10让代码调试起来,才调得出监视
(五)strlen()
strlen()打印的结果是统计字符串\0之前的字符的个数,返回的类型是size_t的类型,用"%zd"类型打印结果最好
(六)各种转义符的意思
1、 "\b"(Backspace)后面有字符就会删除\b前面的这个字符,后面没有则不删
2、 \t是tab按键,会制造出8个bit位的空格,空格中包涵了\t前面的字符
3、 \ddd 是将\后8进制的数字转换成10进制的数字,这个数字作为ASCII码值表示的字符,如 : \130,\33等
4、 \xdd是将\后16进制的数字转换成10进制的数字。这个数字作为ASCII码值表示的字符,如:\x27,\x09等
5、 " \0 " :null 字符,代表没有内容, \0 就是 \ddd 这类转义字符的⼀种,用于字符串的结束标志,其 ASCII码值是 0
(七)空语句的使用场景
当语法需要一条语句时,却不需要它做什么,就使用空语句
(八)结构化
C语言是一种【结构化】的程序设计语言(结构:顺序结构,选择结构,循环结构)
(九)ASCII编码中字符型数据和整型数据之间的联系
在内存中,字符数据是以ASCII码存储,说明字符型数据的存储形式和整数的存储形式类似。所以,在C语言中,字符型数据和整型数据之间可以互通使用,一个字符数据既可以以字符形式输出,又可以以整数形式输出,以字符形式输出时,计算机会先将内存中的ASCII码转换成相应的字符,然后输出。
(摘取自 王健卫-《C++新经典》-清华大学出版社-2020年8月出版)
以上博客内容仅供分享