🔥🔥 欢迎来到小林的博客!!
🛰️博客主页:✈️小林爱敲代码
🛰️欢迎关注:👍点赞🙌收藏✍️留言
今天给大家分享C语言中的三部分内容,希望大家在学习C语言的道路上畅通无阻,也希望我们大家一起进步。
每日一句: 人生的路,靠的是自己一步一步去走。
大纲:
目录
💖1. 第一个C语言程序
因为小林用的是VS2019 编译器,所以和大家会有差异。
首先打开编译器,创建项目。
然后选空项目,下一步。
然后创建项目
然后新建项
我们选择Cpp文件,切记,文件后缀名一定要改成 .c ,然后添加
然后我们就进到了以下界面,如果编译器是 2019的话,那么需要加上第一行来屏蔽输入警告,其他编译器则不用,所以不用担心。
然后就可以开始敲代码了。我们先敲一个main函数,main函数是程序的执行入口,也就意味着任何一个C语言程序 都是从main函数开始执行的。
然后我们写一个输出语句。
再引上对应的头文件。因为printf函数 是C语言提供的,如果我们要使用,需要和它打个"招呼",也就是引用头文件。使用printf需要引用stdio.h的头文件。
然后我们运行一下程序,VS编译器环境下的运行快捷键是ctrl+f5。
我们就发现我们的结果打印出来了,这就是第一个C语言程序。
💖2. 数据类型
C语言中常用的数据类型有以下几种
char 字符型 1字节
short 短整形 2字节
int 整形 4字节
long 长整型 不小于4字节
float 单精度浮点型 4字节
double 双精度浮点型 8字节
字符型 : 1个字符,对应ASCII 码值
短整形 :范围在 -32768(-2^15) ~ 32767(2^15 - 1)之间的整数
整形 : 范围在 (-2)^31 ~ (2^31)-1 之间的整数
长整形 : C语言没有明确规定,只要求long的大小不能小于int。
单精度浮点型 : 简单理解就是小数。
双精度浮点型 :精度更高的小数。
ASCII表
那我们写段代码来测试一下
#include<stdio.h>
int main()
{
char ch = 'a'; //字符型变量创建
short sh = 20; //短整型变量创建
int i = 30; //整形变量创建
long lg = 40; //长整型变量创建
float f= 5.5f; //单精度浮点型变量创建
double d = 6.6; //双精度浮点型变量创建
printf("字符型:%c 所占字节: %d\n",ch,sizeof(ch));
printf("短整形:%d 所占字节: %d\n", sh, sizeof(sh));
printf("整形:%d 所占字节: %d\n", sh, sizeof(i));
printf("长整形:%d 所占字节: %d\n", lg, sizeof(lg));
printf("单精度浮点型:%f 所占字节: %d\n", f ,sizeof(f));
printf("双精度浮点型:%lf 所占字节: %d\n", d, sizeof(d));
return 0;
}
sizeof 是一个关键字,它会返回一个数在内存所占的字节个数。
💖3. 变量,常量
生活中总有些值是不变的(圆周率,性别,身份证号码,血型)。
也总一些值是会变的(年龄,工资,体重) 等等
而会变的值在C语言中被称为变量,不变的值被称为常量。
所以变量通常用来存储会变的值,常量用来存储不变的值。
💖3.1 变量的定义
定义变量很简单,只需要 (数据类型名) + 变量名 ,即可定义一个变量。
假设我要定义一个字符型变量,那么就是 char(数据类型名) + ch(变量名);即可定义成功。
int main()
{
char ch; //定义字符型变量
int i; //定义整形变量
long l;//定义长整型变量
float f; //定义浮点型变量
........
return;
}
变量定义成功了,但是变量肯定会有值。如果我们不主动给变量赋值,那么局部变量的值就是随机值。所以我们要给变量赋值,赋值的方法也很简单。
变量名 = 值;
int main()
{
char ch; //定义字符型变量
int i; //定义整形变量
long l;//定义长整型变量
float f; //定义浮点型变量
ch = 'a'; //ch变量存储 'a' 这个字符
i = 10; //i变量存储了 10这个整数
l = 100;//l变量存储了100这个整数
f = 5.5 ;//f存储了5.5这个整数
........
return;
}
变量存储了一个值之后,我们使用变量,就是使用这个值,比如说我们的变量i 存储了10,那么我们打印 i 就会打印10。
变量也可以在定义的时候直接赋值。
数据类型名 变量名 = 值
int main()
{
int i = 10;
int b = 20;
}
💖3.1.2 变量的命名规则
变量的命名规则必须严格按照以下要求:
1. 只能由字母(大写或小写),数字和下划线(_)组成
2. 不能超过63个字符
3. 变量名区分大小写
4. 不能以数字开头
5. 变量名不能使用关键字
6.同一个作用域不能出现相同的变量名
💖3.2 变量的之间的运算
上面说到,变量是用来存储一个值的,那么这就意味着变量和变量之间可以存在运算。
假设我有3个变量 , 变量 a = 10,变量 b = 20, c用来存储a 和 b的和。
#include<stdio.h>
int main()
{
int a = 10;
int b = 20;
int c = a + b;
printf("c = %d\n", c);
return 0;
}
c 存储的是 a+b的值,那我们打印c来看看。
我们进行了 变量之间的加法运算,那我们分别来试试减法,乘法,除法。
我们发现都可以进行运算,但是要注意一点的是,整数的除法运算只会取2个数的商,而不会取余数,比如 5 / 2 的商是2,所以相除的结果是2。
💖3.3 常量
变量是会变的值,那么常量自然就是不能变的值,变量和常量的区别就是,常量只能在定义的时候赋值,一旦常量定义完之后,那么常量的值无法被修改。
💖3.3.1 const常量
const也是一个关键字,它可以让一个变量变成常量,但严格意义来说不是真正的常量。而是常变量,因为被 const修饰的常量可以通过特殊的方式修改它的值。当然,那是指针的内容了,这里我们不深入探讨。
const修饰的常量定义:const 数据类型 变量名 = 值
int main()
{
const int i = 10;
return 0;
}
const修饰过后,i的值就无法再被改变。我们尝试把i修改成20试试。
编译器就给我们报了个错误,因为常量无法修改。所以当你期望一个值无法被修改时,可以加const关键字对其修饰。
💖3.3.2 define常量
常量的另一种定义方法,就是用define关键字定义,这个是真正意义上的常量,一旦定义,谁也无法修改。
定义方法: #define 变量名 值
这种常量建议定义成全局(就是在main函数外面创建)。
#define i 10 //常量定义
int main()
{
i = 20; //尝试修改常量的值
return 0;
}
然后我们尝试修改i的值。
一样,报错。
💖3.4 局部变量、全局变量
局部变量,顾名思义,就是只能在一段范围内才能使用,一旦出来这个范围,那么就无法在使用这个变量。
💖3.4.1 作用域
在作用域范围内创建的局部变量,只能在当前作用域。什么是作用域呢?很简单,我们把 一段花括号{ } 之间的位置看成一个作用域。而在作用域里面创建的变量,出了作用域,就无法使用了。
#include<stdio.h>
int main()
{
{
int i = 10;
i = 20;
}
//作用域外使用i
i = 30;
return 0;
}
我们会发现在作用域外使用 i ,会提示未定义。
所以,i 就是所在作用域内的一个局部变量。一旦出了这个作用域, i 的生命周期也结束了。
💖3.4.2 变量的生命周期
每个变量都有自己的生命周期,一旦变量的生命周期结束了,就意味着这个变量被销毁了,不复存在了。而一个变量的生命周期,就是出了 它的作用域开始。
int main()
{
int a = 10;
{//作用域的开始
int b = 20;
{ //作用域开始
int i = 10;
i = 20;
}//出了作用域后,i的生命周期结束了
}//出了这个作用域后,b的生命周期结束了
return 0;
}//出了这个作用域后,a的生命周期结束了
如图,变量的生命周期,从变量的创建开始,到出作用域后结束。
结论:
1.局部变量的生命周期,从变量创建的所在作用域开始,到出此作用域结束。
2.在当前作用域创建的变量,只能在当前作用域的范围内使用,一旦出了此作用域,那么该变量就无法使用,因为变量的生命周期结束,变量已经销毁。
💖3.5 全局变量
局部变量的作用域为它创建时所在的作用域,那么全局变量的作用域就是整个程序。也就说全局变量在一个程序中的任何位置,都可以使用。 全局变量的生命周期就是整个程序的生命周期,程序不结束,全局变量不销毁。
全局变量定义:不在函数任意一个作用域里面定义的变量,就是全局变量。
#include<stdio.h>
int d = 100; //全局变量定义
int main()
{
int a = 10;
{
int b = 20;
{
int i = 10;
i = 20;
}
}
return 0;
}
我们可以看到d这个变量,它不在任何一个作用域里面,所以d是个全局变量。在任何地方可以使用。
那么局部变量和全局变量名一样怎么办?
那么会优先使用局部变量,就近原则。
总结🥳:
💦💦如果有写的有什么不好的地方,希望大家指证出来,我会不断的改正自己的错误。💯💯如果感觉写的还可以,可以点赞三连一波哦~🍸🍸后续会持续为大家更新大纲上的内容,以及数据结构,C++等方面的知识
🔥🔥你们的支持是我最大的动力,希望在往后的日子里,我们大家一起进步!!!🔥🔥