计算机只能识别二进制数字(0、1)
C语言代码是文本信息,通过“编译+链接”转化为二进制信息
编译:将单个(.c)源文件(文本)翻译成目标文件(obj或o或 二进制)
链接:将多个目标文件及程序依赖的系统库文件(如stdio.h库)整合,最终生成 单一的二进制可执行文件,


注:如果是第一次使用VS 2022,左边不会有文件


项目名称不建议使用中文!!!

右击源文件——添加——新建项

需要将.cpp后缀改为.c(因为.cpp是c++后缀),进去就可以写代码了,按f5测试,按ctrl+f5(运行程序)(测试程序不代表运行程序!!!)

那我们就以这段代码为例,
“#include <stdio.h>”
这是一个预处理指令,用于包含标准输入输出库(stdio.h)。因为代码中使用了 printf 函数(用于输出内容到屏幕),而 printf 函数的声明包含在 stdio.h 头文件中,所以需要通过该指令“#include”引入这个头文件。


但你看到这三个报错或者其中之一时,就表明没有包含相应的头文件。
“int main()”
每个c语言程序不管有都少行代码,都是从main函数开始执行的,也就是说main函数是程序的入口,也被称为主函数,前面的int表示函数执行结束后返回的整型类型,所以在main函数后面写了一个return 0;前后呼应,在一个项目中会有多个.c后缀文件,但main只有一个,因为程序的入口只有一个,main返回类型规定为int(整数类型),这是由 C 语言标准明确规定的,主要和程序与操作系统的交互逻辑有关。其他类型并非绝对 “不可以”,但不符合标准,可能导致兼容性问题或未定义行为。(main函数后面的括号也不能少)

这时说明一个程序只能有一个main函数(程序的入口)。

这表明我们的main函数后面缺少括号。
Printf(“Hello World”);
这是一个标准输出函数,需要对应的头文件才能运行,双引号里面表示我们要输出的内容,但我们一般会在输出内容的后面加一个“\n”这是一个换行符用于程序自动换行,


return 0;
在 main 函数中,return 0; 表示程序正常结束。按照 C 语言约定,main 函数返回 0 代表程序成功执行,非 0 值“通常”表示执行出错,但在c99及之后的标准中可以舍去return 0;这个时候编译器会自动隐式添加return 0;

所以这个就相当于框架,有了这个框架程序才能正常运行(在代码没有出错情况下),
c语言中有一批保留的名字符号,这些符号被称为保留字或关键字,是保留给c语言使用的,所以在创建标识符的时候不能和关键字冲突,(比如:int ,return,break之类的 )
https://en.cppreference.com/w/c/keyword.html(c语言关键字全部介绍)
我们在键盘上敲出来的各种字母,符号,数字统称为字符,c语言中用单引号括起来(不是双引号),因为计算机中所有的字符用的都是二进制形式存储的,所以我们要给这些字符编码,使其能够让计算机看懂,为了方便大家通信,不造成胡乱,美国国家标准协会(ANSI)出台了ASCII编码,c语言中所有字符都遵循这个编码。
https://en.cppreference.com/w/cpp/language/ascii.html(ascii编码)
我们不需要掌握所有编码,只需要记住常见的编码,不常用的可以随时看看
小写字符>大写字母>数字>控制字符
字母a--z的ascii是97--122。(对应的大小写字母的ascii值的差是32)
数字字符0--9的ascii值是48--57
ascii值0-31是无法打印的,不能在屏幕上显示
c语言中用双引号括起来的字符就叫字符串,比如“12345”、“asdf”、“a”都是字符串,字符串的打印格式用%s来指定(打印格式后续讲)
#include <stdio.h>
int main()
{
printf("%s\n","abcdefg");
printf("abcdefg");
return 0;
}
且慢,在所有字符后面都有一个“\0”,用于表示字符串的结束,在“字符串”中我们不需要输入,编译器会自动加在后面(在代码中先按F10,一直按,直到箭头到最后一行代码,再点击“调试”--"窗口"--“监视”输出你的字符串,别忘了还有双引号也要输入)

所以字符串的大小就是4,那是怎么计算的呢?
这里需要介绍一个关键字和一个函数
关键字:sizeof 函数:strlen
区别在于sizeof遇到\0会加上\0,而strlen不会加上,并且strlen是函数,需要包含对应的头文件<string.h>

C 语言中,转义字符是一种特殊的字符序列,以反斜杠 \ 开头,用来表示那些无法直接通过键盘输入(如换行、制表符)或在字符串 / 字符常量中有特殊含义(如双引号、单引号)的字符
\n:换行符(光标移到下一行开头)\t:水平制表符(类似 Tab 键,通常占 8 列)\r:回车符(光标移到当前行开头)\b:退格符(删除前一个字符)\f:换页符(常用于打印机换页)\v:垂直制表符(垂直方向对齐)\':单引号(在字符常量中表示单引号)\":双引号(在字符串中表示双引号)\\:反斜杠本身(表示一个 \)\0:空字符(字符串结束标志,ASCII 值为 0)\ddd:1-3 位八进制数(范围 0-7),表示对应 ASCII 码的字符(如 \101 对应字符 A)\xhh:1-2 位十六进制数(0-9, a-f, A-F),表示对应 ASCII 码的字符(如 \x41 对应字符 A)
仔细看代码中的\t和t 的区别
简单理解为:一个分号隔开就是一条语句,当看到分号的时候,基本上就代表一条语句的结束
空语句
一个分号就是一条语句,是空语句,什么都不用干
#include <stdio.h>
int main()
{
;//空语句
return 0;
}(在这里补充一下,“//”表示注释,编译器不会执行注释,主要是给人看的,“//”只能注释单行语句,“/* */多行注释”)
表达式语句
#include <stdio.h>
#include <string.h>
int main()
{
int a=10;
int b=4;
b-a+3;//表达式语句
return 0;
}函数调用语句
#include <stdio.h>
int main()
{
int a = 12; int b = 3;
int c = a + b;
printf("%d",c);//用printf函数调用上一个语句
return 0;
}复合语句
其实就是代码块,成对括号中的代码构成代码块
#include <stdio.h>
int main()
{
int num = 6;
if (num > 5)// 复合语句:判断数字是否大于5
{
printf("数字比5大\n");
}
else {
printf("数字不大于5\n");
}
return 0;
}控制语句
C 语言的控制语句是用来控制程序执行流程的语句,主要分为三大类:分支语句(选路)、循环语句(重复)、跳转语句(跳转),这里就不给大家代码展示了,信息量会有点大
上面我们简单提到过,现在来细讲
注释就是给人们看的,编译器会忽略注释的所有内容,在一定程度上好的注释可以代表程序员的职业素养

因为第二行没有注释符号,所以导致代码报错

也可以写成“/* */”的样式

也可以在代码中插入注释(仅限于“/* */”样式)

最后再给大家说一下VS中可以自定义字体和背景(工具----选相----字体和颜色)若想个性化背景则需要下载插件和配置VS,相对麻烦
好了,大家若有补充的可以在评论区留言,大家在看的时候一定要自己敲代码,不要只看!!!