【C/C++基础预习or复习系列】 C语言初学者怎样学习更高效?第一篇博客
文章目录
前言
哈喽,你好。我是幸福的早八人😃😄😆😊很高兴能在这里与屏幕前的你相识
这是我在csdn的第一篇博客,之所以会选择写博客只因为本人目前马上大二,虽然c/c++已经学完。但回首望去,发现,那曾经熟悉的脸庞,额~,不,知识点竟在不知不觉中变得模糊。之前虽一直在gitee中记录自己代码,但却疏忽了总结知识点的重要性,csdn中也有很多优秀的知识点总结🤔但感觉观阅千遍不如自己把脑海中串联的知识点写出来更加有效。于是乎,便有了写一篇【C/C++基础预习or复习系列】的博客的想法,希望能在自我巩固的同时也能帮到你( •̀ ω •́ )
当然,如果有什么问题或者有什么建议也可以随时联系我,有问必答,虽迟必到。毕竟我们是专业的(手动狗头)哈哈,本人目前也属于菜鸟阶段,如果有志同道合的朋友们,欢迎随时联系我,让我们一起,加油!🏃♂️或是有大佬来访,会有么?如果有的话那真是鄙人有幸😻欢迎大佬指点一二,(如有错误,欢迎指正)鄙人愿洗耳恭听😺
ok,言归正传。本系列C语言篇计划将在8月底左右更新完毕。c++篇将在9月份中旬更新完毕。下面进入正题:
C语言是什么?
简单来说:C语言是一种通用的、高级的、结构化的编程语言,也就是一种人与计算机交流的一种计算机语言
温馨提示:下方顺序排列皆为二进制数。(如果你也像我一样,对于基本的十进制数字转换二进制不能快速运算的话。可以试试把日常生活中排序的十进制数写成二进制数。进步就在悄悄间~😋)如给您带来不便,请见谅。
为什么要学习C语言?
1.c语言是计算机程序语言的基础,是实用的程序设计工具,学好C语言对你今后学习JAVA、C++、VB等可以打下良好的基础,因为这些语言大部分都是由C语言扩充或衍生而来的。C可以用于开发比较底层的东西,比如驱动、通信协议之类,在Unix和Linux环境中也是不可或缺的,另外在嵌入式领域也大有作为。
10.如果你不懂得C,基本上就很难理解程序设计的思想,因为想真正学会程序设计就不可能不跟数据结构打交道,而初学者如果直接从VB或Java等其他语言入手,基本上很难理解如何构造数组、链表、树、图等结构
11.C语言可以让你更深刻的理解底层原理,相比较其他的编程语言(像C++,JAVA),C语言是个低级语言。从总体上来说,低级的编程语言可以让你更好的了解计算机。
100.学好C语言,你就能学习现在任何的高级编程语言。因为所有的高级语言都是以C语言为基础的(像JAVA,C++,C#等等)
C语言有哪些优点?
(1)编程自由度高;
(10)执行速度快;
(11)功能强大;
(100)可移植性好等;
C语言可以干什么?
(1)C语言可以写网站后台程序;
(10)C语言可以写出功能强大的程序库;
(11)C语言可以写出大型游戏引擎;
(100)C语言可以写出另一个语言;
(101)C语言可以写操作系统和设备驱动程序并且只能用c语言来写;
(110)C语言可以写微型处理器等;
怎样学好C语言?
(1)多多练习,多多思考,多多请教。
(10)不慌不忙,戒骄戒躁,有所规划。
(11)多多练习,多多思考,多多请教。
1.学会自学,如果你想成为编程大佬,仅仅学习学校老师所讲的内容是远远不够的。🚴♀️
10.不会的一定要问明白,要学会让知识为你所用🐝
11.在看书的时候一定要做好标记,特别是不懂的地方一定要标明是什么意思。✍
100.一定要记住动手,不要只说不做,避免眼高手低,即使简单的程序也要亲手做过才能说会了。💯
101.建议可以设置一个自我正反馈,每当完成一个成就时,就可以适当的奖励一下自己。这样后你会发现,你每天练习的次数会大幅度提高,长期以往,编程对你来说就会是一种习惯了,慢慢的,你不知不觉中就会达到你曾经不敢想象的地方。👣
110.提醒大家学习要讲效率,学习不是要你学习了多久,而是要看你学了多少东西。学习要讲究方法,每个人都要有自己的学习方法,而如何找到它,是需要自己去不断实践的。不断反思,不断调整,不断检验🐱🚀
111.及时复盘,正所谓“温故而知新”。上了大学每天要处理的事情会很多,学习的内容也是五花八门。所以难免会忘记一些之前所学的知识点。因此建议当晚温习一次,隔三天再温习一次,一周结束时,整体温习一次(当然这里的温习也是有讲究的,不要盲目地硬是把自己密密麻麻笔记重看一遍,要讲究效率。具体的方法后期会有所提到,这里就不做过多介绍了)⌛
1000.不要抱怨环境,既来之则安之。周围没有炬火,何不自身化作光,去吸引更多向光的人。🚴♀️
1001.坚持锻炼,身体是革命的本钱。每天出出汗,疾病少一半。💪
新手常见错误
编程不经历错误或警告,怎能见彩虹,没有人能随随便便成为高手。
在遇到错误的时候不要慌,(戒骄戒躁!!!)首先看报错,中文直接看,英文翻译看。根据报错找到错误发生的行数,一般错误就在这一行的上下几行代码。自己不能解决时,去网上查询,实在找不出来问题所在,再询问他人。当然问题也要讲究方法:首先描述你程序的功能,然后描述错误原因,出现位置以及你的看法,最后感谢他人。
语法错误
概念是指程序中含有不符合语法规定的语句
常见错误:
1. 引号、逗号、分号错误。要统一用英文符号。报错索引:expected ‘)’ before ‘;’ token
10. 变量或者函数忘记定义也可能是字母大小写混用了。报错索引: undeclared (first use in this function)
11. %是取模(求余运算),只有整型变量可以进行求余运算。报错索引:invalid operands to binary % (have 'double' and 'int')
100. 变量赋值、运算时显示类型不匹配,导致数据丢失。(如:int a=6;float b=6.041;
当使a=b
(b的值赋值给a)时,无错误索引,高级编译器会显示类型不兼容。)
101. 语句结尾忘记加分号。报错索引:expected ‘)’ before ‘;’ token
110. 字符常量和字符串常量混淆。char c;c=”a”;
字符常量 是由一对单引号括起来的单个字符,字符串常量是一对双引号*括起来的字符序列。警告:assignment makes integer from pointer without a cast
111. 循环条件判断后面是跟着{大括号},不要加上分号 否则循环不完整起不到作用,如:while(1);{printf("C语言Plus");}
这段代码我们想要的是循环打印“C语言Plus
”这段文字,但是实际上屏幕上什么都不会打印。
1000. 函数参数类型不匹配(了解函数的作用,需要传什么参数,对照形参传实参)
1001. 头文件未包含(有时候你在网上看见一个有趣的函数,你自己拿来用,发现此函数竟然未定义,oh~shift!你要知道此函数在哪个头文件里面,或者是否是自己定义的)。
1010. 宏定义不是C语言语句,后面一定不能加分号,否则会导致宏定义不能使用(#define SIZE 100;
这样就是错误的,a=SIZE+1;
这里就运行不了,编译器也崩溃了,乱报错,啥都有,你要是不注意根本找不到问题!)
逻辑错误
概念 是指程序中没有语法错误,可以运行, 但程序运行的结果与预期不相符的错误。
常见错误:
1. 进行if判断时使用了赋值运算符“=”,而不是逻辑运算符if(a=b)和if(a==b)
是完全不同的。切记!!! 以后会遇到的)。
10. 2/9等于0问题,对于整型变量相除后仍是整型(对于小数点后面的数会自动抹去)
11. 访问冲突,让人头大的问题
这个问题错误也有好多:
1) 数组越界访问或者越界存数据
10) 用scanf输入时没有取地址(&a)
11) 指针指向了没有权限访问的内存(注意野指针)等
100. 输入输出的数据类型与所用格式说明不一样。
如:
int a;
float b;
a=3;b=4.5;
注意这里a,b所对应的输出格式printf(“%f%d ”,a,b);
编译时不给出出错信息,但运行结果将与原意不符。这种错误尤其需要注意。
101.scanf问题:
1) 输入变量时忘记加地址运算符“&”。
如:
int a,b;
scanf(“%d%d”,a,b);
这是不合法的。Scanf函数的作用是:按照a、b在内存的地址将a、b的值存进去。“&a”指a在内存中的地址。
10). 输入数据的方式与要求不符。
scanf(“%d%d”,&a,&b);
输入时,不能用逗号作两个数据间的分隔符,如下面输入不合法:
3,4
输入数据时,在两个数据之间以一个或多个空格间隔,也可用回车键,跳格键tab。
11). 输入字符的格式与要求不一样。
在用“%c”格式输入字符时,“空格字符”和“转义字符”都作为有效字符输入。
scanf(“%c%c%c”,&c1,&c2,&c3);
如果输入a b c //(中间有空格)
字符“a”送给c1,字符“ ”(空格)送给c2,字符“b”送给c3
,因为%c只要求读入一个字符,后面不需要用空格作为两个字符的间隔。
en,之前遇到的bug远远不止这些,现在暂时想不起来了,哈哈。后续想到后,会继续更新!(改bug之路—>成神之路🤜)
资源共享(及建议)
初学者暂时先用这种低级编译器,等有一定基础再切换高级编译器。另外不要汉化,英语不会去查,不要怕浪费时间,以后你会经常和英文打交道。还有,电脑不要下载360!!!哈哈。如果实在想下载杀毒软件,推荐火绒。
初学者编程软件:codeblocks(低级编译器)
链接
打比赛时可能会用到 :Devc++ (低级编译器)
链接
进阶者推荐使用:vs(高级编译器)
链接
思维导图软件:xmind
链接
笔记软件:有道云笔记
链接
(极速)搜索文件软件:Everything
链接
(国内首选)杀毒软件:火绒
链接
解压软件:Bandizip
链接
具体使用教程,哔哩哔哩上有很多,我这里就不多介绍了。有疑问,可私信我。
C/C++语言学习心得
鄙人第一次接触计算机时还是在进入大学后,当时对于编程这个概念还是模棱两可。学习时基本是处处碰壁。这一路走来,用一句话表明过程中的感受,那就是“痛苦并快乐着。
在学习c语言期间,每天都要不断的学习,不断的练习,不断的调试bug,不断的复盘。这是学好编程必不可少的一步。(这期间也许会有厌学的现象,但请你相信,你所经历的也是无数向上攀趴的人都会经历的)
每当我修改完一道问题代码时,我就会感受到编写一个程序是多么不容易。光是这么一个简单的程序,就需要不断钻研和反复的推敲,还要加上大量的上机时间。编程是果然是脑力劳动,哈哈。
所有的计算机语言都是相通的,只要一门学会了,其他语言就会很容易学会。因此对于初学者学好C语言,就是首要任务了。当然这不是一件简单的事情,你不仅要把基础知识掌握牢固,还要对程序编制理解透彻,思考如何利用c语言的所有基础知识来实现要编制程序的作用,以及如何更加简便的实现等等。这就需要有逻辑思维,和长时间的经验积累,以及自身的不断钻研。前期的学习,无疑会是枯燥痛苦的。但是呢,只要挺过那段时光,你就会发现你会对编程有新的理解。(学到循环后大致就可以初步尝试一下编写一些小游戏了)这其中的成就感,是不言而语的。
最后呢,分享一下上大学的感受吧,大学相比高中来说,其实并不轻松,但相对自由这件事是无可厚非的。在大学除了学习可以做的事有很多,趁年轻,不要辜负了自己。闲暇之余多去吹吹异乡的晚风,一边骑车,一边欣赏绚烂的晚霞…