c语言入门知识
前言#
C语言一经出现就以其功能丰富、表达能力强、灵活方便、应用面广等特点迅速在全世界普及和推广。C语言不但执行效率高而且可移植性好,可以用来开发应用软件、驱动、操作系统等。C语言也是其它众多高级语言的鼻祖语言,所以说学习C语言是进入编程世界的必修课。
简单概述:
- 性能好
- 学了这个之后学其他语言很简单
- 最重要的是,大一下要上c语言的课,现在学了,下学期就可以摸鱼了🥰🥰
Hello World#
#include<stdio.h>
int main()
{
/*在双引号中间输入Hello World*/
printf("Hello World");
return 0;
}
可以看到我们运行上面的代码在黑框框里打印出来了Hello World。真的是太厉害了!!!🤗
但现在我们想一想为什么?
为什么我们把"Hello World"放在printf里面就可以打印出来呢?
这个printf是什么意思呢?
printf让我们在黑框框里打印文字的逻辑肯定不是我们来实现的呀,我们只是用了printf而已
那这个printf是从哪里来的呢,为啥就像是魔法或者是玄学一样,把"Hello World"放在printf里面就可以打印?
解答:
这个printf是从我们的第一行代码里引入的。printf这个魔法(正式名称是 函数)就是放在stdio.h这个头文件里的。
- 分析一下stdio.h这个名字,stdio是standard input output 的缩写,后面的 .h 这个拓展名就是head的缩写。
现阶段我们可以简单的讲 头文件 理解为是一个给我们提供很多函数的一个库。
一般情况下我们的代码都要引入stdio.h这个头文件,因为它实在是太基础了
- 分析一下printf这个名字,print打印,f是format格式化的缩写。即带格式的打印,这个带格式是啥意思后面会讲,请稍安勿躁
所以说我们将"Hello World"放在printf这个函数里面,我们只是去使用了printf这个函数,但真正将"Hello World"打印出来的代码是由stdio.h来提供的。
这就是头文件的重要性,我们可以去方便使用别人给我们提供的代码。
因为我们的精力和智商有限,所以很多时候我们不可能将所有的功能由我们自己来实现,而是去使用现存已有的代码。
c语言的具体结构#
简单来说,一个C程序就是由若干头文件和函数组成。
include <stdio.h>就是一条预处理命令, 它的作用是通知C语言编译系统在对C程序进行正式编译之前需做一些预处理工作。
函数就是实现代码逻辑的一个小的单元。
一个C程序有且只有一个主函数,即main函数。
C程序就是执行主函数里的代码,也可以说这个主函数就是C语言中的唯一入口。
printf()是格式输出函数,这里就记住它的功能就是在屏幕上输出指定的信息
return是函数的返回值,根据函数类型的不同,返回的值也是不同的。
良好习惯之规范#
一个说明或一个语句占一行,例如:包含头文件、一个可执行语句结束都需要换行。
函数体内的语句要有明显缩进,通常以按一下Tab键为一个缩进。
括号要成对写,如果需要删除的话也要成对删除。
当一句可执行语句结束的时候末尾需要有分号 ;
。
敲代码时一定要用英文输入法,因为中文输入法的标点符号和英文输入法的标点符号是不一样的🤢
注释#
注释是写给程序员看的,不是写给电脑看的。
C语言注释方法有两种:
多行注释:
/* 注释内容
1
2
3但是犯得上发生v
*/
单行注释: //注释一行
可以使用Ctrl + / 快捷键来注释
标识符(可以理解为名字)#
-
标识符可以是字母(A~Z,a~z)、数字(0~9)、下划线_组成的字符串,并且第一个字符不能是数字
-
标识符最好选择有意义的英文单词组成做到"见名知意",不要使用中文。
-
标识符不能是C语言的关键字(关键字后面会将,请稍安勿躁,知道有这个东西就行)
正确的标识符如:
- abc
- cz_666
- czDSB
- _cz_ccdsds
错误的标识符如:
- 69sdf
- @#dssf
- 陈智哥哥666
好的标识符:
- 名字叫 name
- 比较长的标识符
- 驼峰命名法: myNameIsCz 。即除了第一个单词的首字母不大写,其他单词的首字母都大写
- 下划线命名法: my_name_is_cz
不好的标识符:
- 名字叫 mingzi
- 比较长的标识符 mynameiscz
变量及赋值#
变量就是可以变化的量,而每个变量都会有一个名字(标识符)。变量占据内存中一定的存储单元。使用变量之前必须先定义变量,要区分变量名和变量值是两个不同的概念。
变量定义的一般形式为:数据类型 变量名;
int a;
多个类型相同的变量:数据类型 变量名, 变量名, 变量名…;
int a,b,c;
变量的赋值分为两种方式:
-
先声明再赋值
int a; a=666;
-
声明的同时赋值
int a=666;
注意:在定义中不允许连续赋值,如int a=b=c=5;是不合法的。
但在变量定义后是可以连续赋值的,比如这样:
int a,b,c;
a=b=c=5;
举个例子
#include<stdio.h>
int main()
{
// 定义一个叫age的类型为int的变量,并给他赋值为3
// int 是 Integer的缩写,即整数的意思
int age=3;
// 注意这里打印信息的格式有了一点变化
// 通过运行代码我们可以看到,age的数据在%d这个位置显示出来了
// 所以我们可以得出一个结论,printf里面在第一个逗号后面的int类型的数据会被插入到%d这个位置
// 并且%d不会出现在最终的输出里。
printf("我的年龄是%d岁\n",age);
// 定义一个叫year的类型为int的变量 ,并给他赋值为15
int year=15;
// 将age的值和year的值相加后赋值给age变量
age=age+year;
// 注意看这里有了2个%d,第一个逗号后面有了2个int类型的值,他是会根据顺序来插入数据的
printf("过了%d年,现在我的年龄是%d岁",year,age);
return 0;
}
基本数据类型#
C语言中,数据类型可分为:
我们现在先学基本类型
先列出最常用的几种基本类型:
整型数据是指不带小数的数字(即整数):

int 是4个字节,long int是8个字节
浮点数据是指带小数的数字:
需要注意的是上面的表格是我在网上找的。int 类型是根据编译环境的不同,所取范围不同。
我们使用的devc++中int是4字节的
读取数据#
既然我们已经能把数据通过printf打印到黑框框(正式名称为 命令行)里,那我们是否能从黑框框里读取数据到变量里面呢?
当然可以!在这里我们依然是以int类型举例。
#include<stdio.h>
int main()
{
// 定义一个叫age的类型为int的变量
int age;
printf("请输入你的age:");
// 读取int数据并放到age变量中
scanf("%d",&age);
printf("我晓得你的年龄了\n");
int year=66;
printf("过了%d年,现在你的的年龄是%d岁",year,age+year);
return 0;
}
scanf啥意思?
scan扫描,f是format格式的缩写
我们这就通过scanf获取到了我们输入到黑框框里的值。如果要读取多个值可以这样做
int a,b;
scanf("%d %d",&a,&b);
注意:
新手容易犯的错就是在scanf里面,变量是要在前面加一个&符号的
&符号就是取地址符号。
#include<stdio.h>
int main()
{
int a=666;
printf("a变量的地址是%d\n",&a);
printf("a变量的值是%d",a);
return 0;
}
因为变量的值是存放在外面的内存里面的,每个变量在内存中的位置都不一样,就好比是我们的家庭住址
我们要把我们从黑框框里读到的值放到变量中,就要用&符号得到变量的地址,把读到的值放到这个地址中
就好比是知道了你家的地址之后才能把快递发到你家
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统