Hello,这里是君兮,正值毕业季,炎热又悠长的夏日该如何消磨呢?我想有很多有志于进入计算机行业的同学们想提前入门一下编程吧,今天为大家带来一篇有关C语言初阶的博客,保证大家看完都对C语言有一个初步的了解哦!
勤时当勉励 岁月不待人
C/C++ 游戏开发
初识C语言
前言
在开始咱们今天的学习前,请务必先看看这篇博客哦
链接如下:什么?这样自学C语言能事半功倍?
- 以下是初识C语言的基本内容介绍,接下来我会按顺序一个一个讲解。
关于软件安装
-
vs2019的相关安装资源我会发在资源里,有需要自取,接下来讲一下怎么安装及创建项目
-
下载完成后,点开安装包,进入以下界面:
-
正常情况下,勾选图片中应用下载安装即可,如有其他需要,根据自己的需求选择性的安装即可。
-
安装好后,进入以下界面(我这里的版本是2022):
-
点击创建新项目,选择空项目,点击下一步。
-
输入项目名称,选择保存路径,点击创建
-
进入以下界面后,点击源文件—>添加—>新建项
-
修改项目名称和保存路径(后缀是c为C文件,cpp为C++文件),点击添加
-
好了,我们就可以开始敲代码啦!
ASCLL码表
先简单的介绍一下ASCLL码表,之后的学习中会经常用到
-
什么是ASCLL码表
-
在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低电平分别表示1和0),例如像a、b、c、d这样的52个字母(包括大写)以及0、1等数字还有一些常用的符号(例如*、#、@等)在计算机中存储时也要使用二进制数来表示,可是具体用哪些二进制数字表示哪个符号呢?为了统一相应的编码规则而不至于导致通信混乱,美国有关标准化组织就出台了ASCII编码,统一规定了上述常用符号用哪些二进制数来表示
-
其中 0~31及127 (共33个)是控制字符或通信专用字符。
-
而32~126 (共95个)是字符。 其中48~57为0到9十个阿拉伯数字。65~90为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。
- 注意:图中的DEC表示十进制,而HEX表示十六进制。
一.主函数main
- 正如所有高楼都有其根基,而main函数正是我们C语言的根基,当你的程序中没有主函数main时,它是无论如何都无法运行的。
- 注意:在一个程序中,只能有一个主函数main。
第一个C程序
好了,简单介绍了一下C程序的主函数,接下来就用试着编出我们的第一个C程序吧!
- 打开咱们刚才创建的项目:
- 输入以下代码
#include<stdio.h>
int main()
{
printf("Hello,C!\n");
return 0;
}//以上为C语言的基本结构,现在记住即可,以后会具体介绍用法
- Ctrl + F5运行项目
二.数据类型
在C语言中,把数据分为整型和浮点型两种类型,下面分别具体的介绍一下。
(1) 整型
- 存在这么多数据类型,是为了更加丰富的表达生活中的各种值。
- 关于命名:
- 这其实很好理解嘛,基本整型 int占4个byte,那short(短的)是不是要比它短?那long(长的)是不是要比它长?那long long是不是就更长了?
(2)浮点型
- 浮点类型的数据通常适用于我们在C程序中需要表示小数时。
(3)关于数据大小
-
- 位(bit)
- 来自英文bit,音译为“比特”,表示二进制位。位是计算机内部数据储存的最小单位
-
- 字节(byte)
- 字节是计算机中数据处理的基本单位。计算机中以字节为单位存储和解释信息,规定一个字节由八个二进制位构成,即1个字节等于8个比特(1Byte=8bit)
三.变量
1.什么是变量
在C语言中,我们把数值可发生变化的这种值称为变量。
2.如何定义一个变量
以下这些都是定义的变量
int age = 21;//年龄21岁
float weight = 45.5;//体重45.5
char name = ' w ';//名字 w
3.变量的命名规则
- 变量的名字不允许是关键字(后面会讲什么是关键字)
- 变量的名字只能由字母,数字和下划线 " _ "组成
- 变量的名字不能以数字开头
- 变量的名字中区分字母大小写(即字母大写与字母小写不是一个变量)
4.变量的分类
通过变量作用范围的区别,我们通常把变量分为全局变量和局部变量
什么是全局变量
- 定义在全局的变量,在程序中任何位置定义的该变量都可以使用。如以下代码中的变量 i
int i = 0;
int main()
{
return 0;
}
什么是局部变量
- 定义在函数内的变量,该变量只可以在定义域内使用。如以下代码中的 n
int main()
{
int n=0;
return 0;
}
全局变量与局部变量的区别
咱们通过以下代码来对比以下两者的区别
int i = 0;
int main()
{
int i = 100;
printf("%d\n", i);//把i以整数的形式在屏幕上打印出来
return 0;
}
- 请用你聪明的大脑分析一下在屏幕上打印出的结果
公布答案:
- 如果你答对了,那么恭喜你,已经对变量的作用域有一个基本的了解了,我来具体解释一下。
变量的作用域及生命周期
- 作用域(scope)是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用的而限定这个名字的可用性的代码范围就是这个名字的作用域。
- 正如任何生物的生老病死一样,变量也是。对于一个变量来说,生命周期指的是变量的创建到变量的销毁之间的一个时间段
- 全局变量的生命周期:整个程序的生命周期。
- 局部变量的生命周期:进入作用域生命周期开始,出作用域生命周期结束。
- 上面的代码中,i同时在全局与主函数main内被定义,当遇到这种变量重名的情况时,局部变量优先使用,这就是输出结果为100的原因。
四.常量
在C语言中,我们把不可变的值称为常量
- 常量往往在数组中使用较多,在之后的数组介绍中会具体讲解常量的使用
五.字符及字符串
1.定义
-
这种由双引号(Double Quote)引起来的一串字符称为字符串字面值(String Literal),或者简称字符串。
-
注:字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符串内容
-
而这种由单引号(’ ')引出的一个字符被称为字符。
-
定义一个字符串或者字符时,我们需要用char数据类型
2.字符串的结束标志
试分析一下下面这个代码的输出结果:
int main()
{
char arr1[] = "abc" ;
char arr2[] = {
'a','b','c' };
char arr3[] = {
'a','b','c','\0'};//数组,下面会介绍
printf("%s\n", arr1);
printf("%s\n",arr2);
printf("%s\n",arr3);
return 0;
}
- 怎么样,和你想的结果一样吗?
- 注意:
- 在C语言中,一个字符串的结尾是“\0”,当程序读取到“\0”时才会停止(这个\0并不会在屏幕上打印),当读到末尾还不是“\0”时,程序就会一直读下去生成如图所示的乱码,直至再次从随机值中读取到0(ASCLL值为"\0"),程序停止。
六.转义字符
对于上面的代码,对于某些初学的同学可能还有疑问,在打印的代码中这个“\n”是什么?这就是我们接下来要介绍的内容—转义字符
- 常见的转义字符有以下这些
- 好了,除了上面我们见过的“\n”以外,我再选几种比较常用的讲解一下。
“\t” “\v”的用法
- 注意:
在Windows控制台中,垂直制表符并不能够在控制台中直接打印想要的制表效果,而是以一个特殊的字符来表示。至于会打印出什么特殊字符,看环境、编译器,以及系统 - 咱们还是举个栗子讲解哦
int main()
{
printf("c\test\vjunxi");
return 0;
}
- 那结果会是把这行代码打印在屏幕上吗?
- 显然不是,让我来解释一下:
- 对于水平制表符:
每8个字符可以看作一个水平制表符,如果遇到 \t 之前未满8个字符 则 \t 就补空格直到满8个
这就是c后出现空白的原因。 - 而对于垂直制表符
它的作用是让‘\v’后面的字符从下一行开始输出,且开始的列数为“\v”前一个字符所在列后面一列。
“ \\”的用法
在实际编程的过程中,我们经常遇到上面这种情况,莫名其妙就用了某个转义字符导致最终达不到预想的结果,那我们怎样能得到我们想要的结果呢?
- 我们来修改一下上面的代码
int main()
{
printf("c\\test\\vjunxi");
return 0;
}
- 来看看结果
- “\\”用来防止它后面的内容被解释为一个转义序列符。这样是不是就得到我们想要的结果了呢
“\n” “\r”的用法
-
“\n”换行,换到当前位置的下一行,而不会回到行首;
-
“\r” 回车,回到当前行的行首,而不会换到下一行
-
注意:在使用“\r”时,会把“\r”之前的内容覆盖。
“\xdd” "\ddd"用法
分析一下下面代码的结果:
int main()
{
printf("\x30\n");
printf("\130\n");
return 0;
}
结果如下:
-
有人看到这可能会想,这是什么玩意儿?怎么跟0 X扯上关系了嘞?
此时我们不妨想想上面讲过的ASCLL码表:
-
\xdd dd表示2个十六进制数字。
-
上面代码中为\x30。
查上表可得:十六进制的30即为0 -
\ddd dd表示1~3个八进制的数字。
-
上面代码中为/130,化为十进制就是64+24=88
-
查表可知为“X”
-
注意:
-
在你想使用转义字符时,一定要注意输入格式,千万不要在“\”后加空格或者其他多余的操作,而是照着规定的格式输入,否则则会导致使用转义字符未达到相应的效果
七.注释
在我们以后的学习工作中,代码不仅要让我们自己看懂,更要让别人看懂,因此在代码后添加对此段代码的注释对于一个程序猿来说非常重要。
好的注释不仅能在以后无论面试或者其他需要展示代码的时候为你大大加分,更能在当你在发现bug需要修改代码时,让你更快熟悉并发现问题所在。
注释的作用
- 1. 代码中有不需要的代码可以直接删除,也可以注释掉
- 2. 代码中有些代码比较难懂,可以加一下注释文字
接下来简单演示一下注释:
//int i = 0;
int main()
{
int i = 100;
printf("%d\n", i);//把i以整数的形式在屏幕上打印出来
return 0;
}
在//后面的内容就是对这段代码的注释,它能让我们更好的读懂这段代码
C/C++不同的注释风格
- C语言风格的注释 /* xxxxxx */
缺陷:不能嵌套注释 - C++风格的注释 //xxxxxxxx
可以注释一行也可以注释多行
小小总结一下
- 好啦,今天的内容就先到这里啦,接下来会在《万字解析,带你0基础快速入门C语言(下)》中把C语言初阶剩下的基础内容讲完的,其中每一部分的详细介绍也会在最近更新。
- 看这里,下篇已更新【C语言初阶】万字解析,带你0基础快速入门C语言(下)
制作不易,这篇内容是博主抽了整整两天的时间才完成的,其中包括收集资料,画思维导图,画注解图等等等等…
都看到这里了,真的不三连支持一下这个努力的新人博主吗???