hello,我是木头,柏木乃一,木头木头木,你怎么叫我都可以,今天我要正式再csdn发表自己的博客啦,
我是一个大一的新生,在来到大学的时候是完完全全的零基础小白,但是我经过三个月的学习,我想把自己的学习经历和以后的学习想法之类的分享给大家,希望能够对你们有所帮助~~~~
本章目标
1…社么是c语言
2.编译器——vs2022
3.vs项目介绍与创建
4.第一个c程序
5.关键字,字符与字符串
6.语句
7.注释
1.社么是c语言
⼈和⼈交流使⽤的是⾃然语⾔,如:汉语、英语、⽇语
那⼈和计算机是怎么交流的呢?使⽤计算机语⾔。
⽬前已知已经有上千种计算机语⾔,⼈们是通过计算机语⾔写的程序,给计算机下达指令,让计算机
⼯作的。
C语⾔就是众多计算机语⾔中的⼀种,当然C++/Java/Go/Python都是计算机语⾔
c语言是一种编译型的汇编语言之一
相对的一种是解释型语言包含HTML,JavaScript等等
2.编译器的选择——vs2022
C语⾔是⼀⻔编译型的计算机语⾔,需要依赖编译器将计算机语⾔转换成机器能够执⾏的机器指令。
那我们常⻅的C语⾔编译器都有哪些呢?
⽐如:msvc、clang、gcc就是⼀些常⻅的编译器,当然也有⼀些集成开发环境如:VS2022、
XCode、CodeBlocks、DevC++、Clion等。
就作者而言,devc++和codeblocks对于初学者而言,使用虽然友好,但过于简单但当今环境下,vs2022是大多数的人的选择,因为功能强大,使用方便。
集成开发环境(IDE)⽤于提供程序开发环境的应⽤程序,⼀般包括代码编辑器、编译器、调试器和图形⽤⼾界⾯等⼯具。集成了代码编写功能、分析功能、编译功能、调试功能等⼀体化的开发软件服务套。
3.vs项目介绍与创建
当我们第一次打开vs的时候要,创建我们的第一个项目的时候只需点击创建新项目
然后按照作者的配置去设置
如果你的vs2022在进行到这一步时什么也没有,请在你的电脑中找到vs的安装器
(第二排第三个)
在这里点击修改
勾选c++桌面开发
然后在你的右下角你会出现
*点击静待,然后重新启动你vs重复上述过程
点击空项目下一步
在这里修改项目名称,位置(最好不要设在默认地址因为不好找)
然后就正式的进入了我们的vs界面
在右边的解决方案资源管理器中找到我们的源文件,右键打开
添加 ,新建项。
在这里划重点!!!!!
我们点第一个c++文件,然后再名称的位置修改名字
一定要是(test.c)test点c这种的,因为如果你默认创建的话,vs编译器会默认吧你的的文件当作c++文件来处理而不是c文件,而二者的区别,虽然差别不大,但仍有区别,例如c++的类型检查要比c更加严格。
以上都做好点击添加,我们的第一个c项目就创建好了
4.第一个c程序
1.编译与链接
在写我们的第一c程序之前,我们要来介绍下c程序的创建过程。
经过我们前面的了解,我们知道C语⾔是⼀⻔编译型计算机语⾔,C语⾔源代码都是⽂本⽂件,⽂本⽂件本⾝⽆法执⾏,必须通过编译器翻译和链接器的链接,⽣成⼆进制的可执⾏⽂件,可执⾏⽂件才能执⾏。
C语⾔代码是放在.c为后缀的⽂件中的,要得到最终运⾏的可执⾏程序,中间要经过编译和链接2个过程。
C语⾔中把.c 为后缀的⽂件称为源⽂件,把.h为后缀的⽂件称为头⽂件。
当我们写好一个c程序的时候它这一个项目可能包含很多源文件,这些源文件经过编译器,各自生成一个.obj的目标文件(中间文件),而在编译的过程中,仍有许多过程,我会在后续的博客中分享,这里大家只需要笼统的了解,有个大体的印象。
这些目标文件会和链接库(库文件,也是是stdio.h这种头文件)的展开放在一起经过·连接器生成,可执行程序。
2.第一个c程序的实现
#include<stdio.h>
int main()
{
printf("hello,world\n");
return 0;
}
在你的vs中创建好的源文件输入上述代码
ctrl+f5(此为vs的运行快捷键)运行,当出现上述的结果,恭喜你,你成功运行了你的第一个c程序。
我觉得你应该大部分能看懂,也许你有很多疑惑,这里的东西你可能都不是很明白,我会在下面一一解答
1. main函数
每个程序无论有多少代码都是从main函数开始的,main函数是程序开始的入口,无论什么情况,程序都是从main函数开始执行。
main函数也被叫做主函数
main函数前面的int ,表示main函数的返回值是一个整型(现在你可以理解为整数),与后面的return 0照相呼应。
以下请注意
main函数是程序的入口
main函数有且只有一个
如果一个项目中有多个文件,但main仍只能有一个(main是程序的入口,如果有多个main函数程序应从哪里开始呢?你说对吧。只能有一个)
你可能还会犯出以下的错误
1将main函数写成mian函数
2main后面的()漏了
3代码中使用中文符号,括号和分号(对于这一点请注意你写的代码,如果出现这种情况,请注意你代码下面的下划线)
3一句语句的结束后面要用分号表示结束
2.printf与库函数
printf("hello,world");
在这里简单介绍下printf函数,printf是一个库函数,它的功能是在标准输出设备(⼀般指屏幕)上进⾏信息的打印。上⾯的代码是使⽤printf 函数打印字符串。只要把想要打印的⼀串字符放在双引号中并传递给printf函数就可以打印。
printf函数还能实现其他的数据打印例如
int a = 521;
printf("%d\n",a);
printf("%c\n",'q');
printf("s\n","all_to_be_nice");
这里的%d,%c,%c是占位符,它们会被后面的值替换。
这个我会在后续的博客介绍
而库函数的使用是需要头文件的包含,这也就是为什么我们需要在前面写下
#include<stdio.h>
的原因了。
那什么是库函数呢?
为了不再重复实现常⻅的代码,让程序员提升开发效率,C语⾔标准规定了⼀组函数,这些函数再由不同的编译器⼚商根据标准进⾏实现,提供给程序员使⽤。这些函数组成了⼀个函数库,被称为标准库,这些函数也被称为库函数。在这个基础上⼀些编译器⼚商可能会额外扩展提供部分函数(这些函数其他编译器不⼀定⽀持)。
⼀个系列的库函数⼀般会声明在同⼀个头⽂件中,所以库函数的使⽤,要包含对应的头⽂件。
5.关键字,字符与字符串
关键字
1.c语言中有一些保留名字的符号,包括int if return等,这些单词被称为保留字或关键字关键字都有自己的含义,是用来保留给c语言来使用的。
2.我们在创建标量的标识符的时候是不能与关键字重复的
3.关键字我们是不能创建的。
(但我们能够给关键字起别名,这里我们先挖下一个坑)
c语言的32关键字如下
这是我们使用最多的关键字。c语言的关键字不知这些,如需了解更多请详见
https://zh.cppreference.com/w/c/keyword
字符
在键盘上可以敲出各种字符,如:a,q,@,#等,这些符号都被称为字符,C语⾔中字符是⽤单引号括起来的,如:‘a’,‘b’,‘@’。我们知道在计算机中所有的数据都是以⼆进制的形式存储的,那这些字符在内存中分别以什么样的⼆进制存储的呢?如果我们每个⼈⾃⼰给这些字符中的每个字符编⼀个⼆进制序列,这个叫做编码,为
了⽅便⼤家相互通信,不造成混乱,后来美国国家标准学会(ANSI)出台了⼀个标准ASCII编码,C语⾔中的字符就遵循了ASCII编码的⽅式。
我们不需要记住全部ascll码值,
只需需要记住常用的和他们的范围
大写字符的范围是65~90
小写字母的范围是97~122
大写字母与小写字母的差值是32
数字的ascll码的范围是48~57
0~32的ascll码所对应的字符为不可打印字符
在屏幕上不会显示。
字符串
在c语言中我们是如何来表示字符串的呢,字符串会被我们放在双引号中来表示例如
“ADADADAD”,这样的一串字符就被我们称之为字符串
字符串的打印形式我们可以用%s来指定
printf("AFVAD");
printf("%s\n","sadad");
以上两种方式来对字符串进项打印
在字符串中其实有隐藏字符\0,我们如何来去查看这个\0呢?
printf("ACCnACC\n");
char arr[]="arra";
printf(arr);
printf("\n");
printf("ADAAF\0adfAFF\n");
我们可以看到以上结果
我们打开vs的调试找到监视窗口
去查看我们的arr数组(此处只为展示\0如果看不懂我会在后续分享)
在这个数组的最后一个元素就是\0
在这个代码块的最后一个代码我们发现在我们添加\0之后,后面的字符并没有打印,这说明,反斜杠0的作用是用在作为字符串结束标志的。
3.转义字符
也许你会恨好奇,我们在前面的\n究竟是什么,它表示转义字符,字面意思,转变字符的原本意思的字符,反斜杠n在这里表示是换行符
打印到反斜杠0的时候,光标会自动的跳动到下一行。
以上是我们常用的字符表
在这里特别提以下最后两个
\xDDD表示的是十六进制的字符
例如\xFFF表示就是十进制数字4095
在c语言中0x表示的是十六进制数字而0开头的数字例如020表示是8进制的数字
同理我们也就可以理解\020表示是十进制数字16。
如需了解更多转义字符请点以下链接
https://zh.cppreference.com/w/c/language/escape
6.语句
在c语言中语句可以大致分为5类
1.空语句
2.表达式语句
3.函数调用语句
4.复合语句
5.控制语句
以下我们一一用代码对其进行介绍
1.空语句
int i = 0;
for(i = 0;i<10;i++)
{
;
}
以上就是一个空语句表达形式,多用于循环体当中,它表示我在这里社么都不需要在,但因为语法需要我们需要在这里打印一个语句,我们就用空语句。
2.表达式语句
int c =10;
char d ='c';
表达式语句人如其名,就是在表达式上面加上一个分号就是一个表达式语句。
3.函数调用语句
#include <stdio.h>
int Add(int x, int y)
{
return x+y;
}
int main()
{
printf("hehe\n");//
函数调⽤语句
int ret = Add(2, 3);//
函数调⽤语句
}
return 0
当函数进行调用的时候我们也会在它的后面加上一个分号表示函数调用语句。
4.复合语句
复合语句就是我们上面所提到的代码块,当一堆代码放到一个分号当中就表示一个复合语句
void check(SL* ps)
{
//判断空间是否足够
if (ps->size == ps->capacity)
{
int newcapacity = ps->capacity == 0 ? 5 : 2 * ps->capacity;
datatype* pd = (datatype*)realloc(ps->arr, newcapacity * sizeof(datatype));
if (pd == NULL)
{
perror("realloc");
return;
}
ps->arr = pd;
ps->capacity = newcapacity;
}
}
5.控制语句
控制语句就是为了控制程序各个流程的,来实现程序的各个环节的,(c语言一共支持3种结构,顺序结构,选择结果,循环结构)。c语言的各个控制语句有各自的结构。
c语言一共支持9种控制结构
分为以上三类。
6.注释
什么是注释
注释是一种对代码解释的方式,它也能帮助我们来进行调试程序
一共有两种注释风格
/*adafafaag这是一行注释*/
此为c语言的注释风格。但我们并不推荐这种写法,因为在里面我们并不能进行嵌套
当/遇到第一个/的时后它就默认注释了
//这是一个注释
此为c++的注释风格,我们推荐这种写法,方便快捷
小结
在这期中我们对语言有一个大概认知,并完成了第一个c程序并了解它其中的知识。包括关键字,字符,。语句,注释的作用,编译器的选择,我期待我们下一次的相遇,
完