大三从零开始学C
第一篇博客,写的不好,见谅。
首先,对于自己的编程基础做一个简单的总结,对于Java代码可以做一些简单的程序,但是基本能看懂比较大的项目,如果实在很大很杂的话可能看不懂,对自己来说,自我认为对于Java还处于入门到进阶的水平,做不了实际的项目,但是接下来的一年多的时间,我会依次学C,C++,java,pathon。今天是2021年10月30日,学C已经差不多一周的时间了,今天来对于自己这段时间的成果做一个总结。
一,头文件,主函数and 打印符号"%_"
1.1 主函数 main()
跟Java里面不太一样,main()在C语言里面叫做主函数,意思就是每次运行程序时先从main()这个函数开始执行。main()函数前面必须得有返回值类型,意思就是说函数main()return的值应该是整型的。
1.2 头文件
1.2.1 printf() 函数输出引用
在 Java里面,输出语句不需要引用头文件(Eclipse编译时,其他软件没用过)。这里每个工程开头引用一些必要的头文件的意思是我用的那个函数或者名字是头文件里的,如果想用的话,就先得引用头文件(我理解的)。比如printf()输出语句需要引用 #include
1.2.2 scanf() 函数扫描从键盘的输入
scanf() 函数跟printf() 函数不一样,但是相同的是他们都需要引用头文件,而且scanf()函数引用的头文件比较麻烦:#define _CRT_SECURE_NO_WARNINGS 1 。由于这个头文件很长,故需要给它装入编译器内部的第一行,具体操作为打开安装VS2019的路径,找到文件newc++.file文件,用记事本打开然后把#define _CRT_SECURE_NO_WARNINGS 1 这行代码写进去,保存退出,以后新建C语言文件时,上述这个头文件会自动出现,避免麻烦。
1.2.3 "%_"用在输出语句中
%d 表示打印整数
%c 表示打印字符
%f 表示打印单精度浮点数(float)
%lf 表示打印双精度浮点数(double)
%s 表示打印字符串
二,变量的生命周期以及作用域
2.1.1 变量,常变量以及生命周期
其一,变量就是内容即地址可以改变,而常量就是说一出生就定了,不能再变了。再就是const定义的常变量,本来是变量,被const修饰之后就变成了常变量,常变量的意思是具有常属性的变量。即在他的这个作用域范围内是常量,不能再改变了。
其二,变量以及常量的作用域以及生命周期。常量的生命周期即作用域就是它所在的函数。而变量的生命周期是整个工程,即包括一个工程下不同的.C文件(同一个工程不同.C文件之只需要用extern申明就可以了)。
其三,define定义的标识符常量,比如 #define MAX=100 。这里注意,这个是常量,不能改变的。
其四,枚举常量,用以减少主函数冗余,以及方便调用,提高效率。枚举常量的关键字为enum。比如下图所示:
三,初始字符
3.1.1字符串
字符串,用双引号引起来的一串字符:"avshdc张三543"。打印输出的时候用"%s"。最重要的字符串有自己本身带着结束符 。实际上 是转义字符,变成了字符串的结束标志。如下图所示:42行和44行的输出因为字符的结尾没有结束标志,故结果出错。
3.1.2 转义字符 _
在需要转移的字符前面加上 ,比如 t 是将t变成了转义字符,每个转义字符都有自己的含义,转义字符一共有128个,因为一共有128个ASCII码值,一一对应。键盘上的每个键位都有自己的ASCII码值。
如上图所示,转义字符最主要的作用就是1.字符串结尾默认的结束标志 表示该字符串结束,然后就可以保证一些代码的运行不会因为没有结束标志导致结果出错。
四,操作符
4.1 算术操作符
最基础的 + - * / %(%为取余操作符)。需要注意的就是除数运算的时候,需要有一个数为浮点型数据,这样最后的结果就是浮点型数据,否则不管是 %d 或是 %f 打印的结果都是整型,而整型输出的是十进制整型数据的实际长度。当有一个浮点型数据的时候,用 %f 打印出来的就是浮点型数据(%f 默认打印六位小数)。
4.2 移位操作符
>> 右移 << 左移
移位操作符移动的是二进制码,箭头后面是几代表移动几位。
4.3 位操作符 赋值操作符
这个跟Java差不多,故先简单了解。
4.4 单目操作符
单目操作符中的 !(逻辑非)和 sizeof() ()
4.4.1 逻辑非 !
逻辑非主要用在while循环中,用来表达一些特殊的意义,这样可以使得程序更加简洁明了。
如上图所示,这里要给出的是一个规定: 整型数取反都为 0,而 0 取反则为 1
4.4.2 sizeof() 操作符(不是函数)
需要注意的是 sizeof() 并不是函数,而是一个操作符,表示计算类型或变量的大小。
今天就先写到这儿吧。明天继续。如果有错的地方,可以随时留言哦,谢谢!



