C语言是一门人与计算机对话的语言,人们发明C语言命令计算机达到自己想要的效果。
计算机的语言有很多。C语言发展到现在只有短短51年的历史,却始终在计算机语言的使用中排行前三,应用广泛。
一开始是只有B语言,但B语言的应用并不如C语言这么简便,C语言在发明出来后很快替代了B语言,广泛应用。但是后来由于各公司对C语言的私设,导致C语言的程序无法在范围内进行传播。所以有关部门对C语言进行了一系列标准化的规定,使C语言更加标准化。
我们通过写代码来命令计算机达到我们想要的效果。但是我们写的代码只是文本。这样的文本只是字符和文字。它是无法运行的。需要将这些文本通过编译器编译然后链接,形成可执行的程序。然后才能形成计算机可理解的二进制语言,运行起来。
这样的话,我们就不能通过word、记事本这些写有效的代码。只能用编译器来写。像vs2022这种是【集成式编译器?】,它集合了编译、链接等各种写程序需要的功能。VS2022是Windows系统用的,iOS系统的用clang,这个我也没了解过。目前我用的是VS2022。
因为学的C语言,但VS2022里面创建的时候只有cpp,cpp是C++,C语言和C++虽然有许多相似之处,但也有一部分是不同的。初学还是谨慎一些,按照标准来做,把文件名字后缀改成.c,.c文件都是源文件,还有一种是头文件。
VS2022是外国人发明的,他们使用英语,所以代码文件的命名最好用英文,中文的话可能出现难以识别的情况,当然,如果非要试验也不是不可以。
写代码首先需要知道的是主函数也称为main函数。一个源文件中只能有一个main函数,所有的代码都在这个main函数里面运行,main函数有多种写法,但我掌握的是int这种整型开头的写法。main函数的括号里一般是表示参数,没写就是没有参数。花括号里是我们要运行的代码。
如果不写主函数,只写代码,是运行不了的。
代码的运行是从左到右,从前到后的。写main函数必须要在花括号的尾部加上return 0;return表示返回,0表示整个代码正常结束。当然作为整型,我们可以写0以外的12345等其他数在return后面,只是C语言中约定俗称了一个规则,那就是0代表正常,其他一切非零数字代表着异常。我们的代码一般是表示正常运行和结束的,所以用0而不用其他数字。
说完主函数就要说库函数。库函数的由来是因为计算机中有许多经常要用到的函数,比如printf函数,这些函数每次使用都要添加一系列的东西太麻烦了,所以就把这些常用的函数放到一起作为规定。各公司的编译器各自用自己的系统设计符合函数的标准,使函数的使用简便起来。使得这些函数代码一样/相近,效果相同。
写代码还有一个很必要注意的点是,所有的字符都必须是英文,如果用中文字符可能会报错。
接下来就是打印一些东西展示出来,要用到的函数是printf函数,在这个函数的括号里,用双引号添加在要打印的内容两侧,然后运行。双引号括起来的都是字符串。
运行一般用ctrl+F5,笔记本要+Fn。本来F1到F12都有特殊的含义,但是发展到现在笔记本为了迎合用户的看剧等需求,将F1和F12的含义改变了,变成了调节屏幕亮度,声音加减等。所以现在的Fn+F1或其他,就是恢复F1原来的作用。因此笔记本的话就用ctrl+Fn+F5来运行VS2022的代码。
我们在打印字符的时候,也可以通过使用ASCII编码来替代原来的字符。比如65是A的编码,那么在打印的时候,就可以用65替代A,运行出来依然是A。计算机只能识别二进制的数字,那么标点符号以及字母就需要变成数字让计算机识别,所以就有了ASCII的出现。这个编码不用背,用熟悉了就知道了。
用printf函数经常会用到占位符,占位符都是用%开头的。占位符的作用是替代后面的字符或者字符串。常见的占位符有%d %f %s %c 。其中%d表示后面的数字用整数替代,%f表示后面的字符是浮点数(小数),%s作用于字符串,%c作用于单个的字符。
每一个字符串后面都隐藏了\0,\0表示的是终止。如果用printf打印同样字符组成的字符串和单个字符,会发现字符串是符合预期的,因为它后面隐藏了\0,而单个字符后面是没有隐藏\0的,所以打印起来会没完没了,直到遇到随机的\0,所以这期间会发现无法控制的其他字符显示在后面。
另外常见的是转义字符,转义字符的话如\n \t等等。n和t作为内容是可以用printf打印的,但是加上了\以后,它们的含义有了变化。比如\n是跳转到下一行的意思,而\t是制表符。