一开始是选择的Python,跟着B站黑马程序员的学了一个多月,把基础语法都学完了。后来在网上看到很多人说如果想成为程序员建议选择C语言入门,因为C语言讲了很多计算机深层次的原理。学好了C语言可以很好的理解编程背后的很多原理,并且再学习其他语言的时候就会很轻松,能够做到类似一门通,门门通。所以又到B站上找了学习资料,最后看到很多人说鹏哥c语言讲的很好,就跟着学了。
这个课程的第一章是初识c语言,因为之前学过一点点Python的基础语法,所以学起来比较轻松。
第一节:数据类型。
跟Python差不多,多了一些长短整形。tips:每种类型数据在内存中的大小。
第二节:变量常量。
变量命名的规则跟Python一样;同时局部变量和全局变量也是一样的原理。通过c语言变量学习更清楚的了解了变量的作用域和生命周期,知道了为什么局部变量只在它的作用域有效,因为出了作用域就销毁了。tips:当全局变量和局部变量名字相同时,优先使用局部变量。
常量就是一些固定值,表示不变的值。其中有const修饰的常变量,值无法被修改,但本质是变量。
第三节:字符串+转义字符+注释
C语言的字符串和Python有些许区别。通过举例说明:
第一种:char arr1[] = "abc";
第二种:char arr2[] = {'a','b','c'};
第一种元素个数有4个,因为末尾有\0,字符串长度是3。
第二种元素个数只有3个,末尾没有\0,字符串长度是随机值,因为只有找到\0才会停下。第二种规范初始化应该是这种形式char arr2[] = { 'b', 'i', 't','\0' };
至于转义字符和注释和Python没太大区别。不过想要吐槽的是C语言因为是后端语言,所以在打印这块非常麻烦,需要使用%这种占位符前面加数据类型,最后在后面逐个放入变量的形式。
第四节:if语句
跟Python基本一样。tips:C语言不像Python靠格式对齐来确定if、else if、else的从属关系,虽然也会有缩进格式方便阅读。并且if、else if、else后面需要执行的语句不止一条,需要使用大括号。
第五节:while语句
跟Python没区别。
第六节:函数
需要注意函数是否有返回类型以及返回类型是什么,因为C语言定义函数的关键字和Python不一样。形参也需要标注类型。
第七节:数组
好像没有Python那么丰富的数据容器,Python的数据容器是个难点。这一章作为了解C语言全貌,没有过多讲,只是见识了一下C语言的数组。
第八节:操作符
因为还有很多知识暂未涉及到,所有只讲了一部分,不过这些都是我之前就学过的。
第九节:关键字
这里着重讲了static,这个关键字改变了局部变量、全局变量和函数的作用域。
对于局部变量来说,被static修饰后,出了自身作用域依然存在,并且生命周期直到程序结束才结束。但不能理解为全局变量。
而全局变量和函数被static修饰后,就只能在本源文件内使用。
第十节:指针
指针也就是指针变量,里面储存的是地址。通过地址就可以找到指针指向的变量里面储存的数据。不过指针指向的是第一个字节的地址。
通过了解指针,对内存有了一个初步的了解,每个内存单元是1字节,32位的系统最大寻址空间是2的32次方个字节,最后换算得到的就是4gb。通过这节的学习知道了为什么现在的内存都是4gb的倍数。
第十一节:结构体
C语言的结构体很像Python的类,都是用来描述现实生活中的某一类事物。比如可以创建一个学生的结构体,里面有姓名,年龄,学号,性别等。
总结:
通过初识c语言这一章发现,c语言的基本语法和Python有很多相似之处。但是在学习Python的时候并不了解在创建变量意味着什么,当时也并不理解= 不是等于的意思,而是赋值的意思。现在能了解到一些代码背后的事情。
最后希望自己坚持下去。