早期的C 语言主要是用于UNIX系统。由于C语言的强大功能和各方面的优点逐渐为人们认识,到了八十年代,C语言开始进入其它操作系统,并很快在各类大、中、小和微型计算机上得到了广泛的使用,成为当代最优秀的程序设计语言之一!
C语言,顾名思义,它是一门语言,它和我们平常所讲的汉语和英语有着相同的功能,我们和中国人讲汉语,和外国人讲英语,那么和计算机,你就需要讲计算机”听得懂“”的语言,C语言就是这种语言。
分享之前我还是要推荐下我自己建的C/C++开发学习群:【六二六,八七一,九一六】,都是学C/C++开发的,如果你正在学习C/C++ ,小编欢迎你加入,今天分享的这个案例已经上传到群文件,大家都是软件开发党,不定期分享干货(只有C/C++软件开发相关的),包括我自己整理的一份2018最新的C/C++零基础资料和C/C++进阶教程,欢迎进加入前面我写过一篇文章谈了自己的C/C++学习经验(我学C/C++的经验),里面谈到"技巧宛如一颗一颗珍珠",后台有好几个小伙伴留言,能不能分享一些技巧. 其实我的企鹅号里面多多少少分享过一些,今天我分享一些自己私藏的非常不错的技巧和代码给大家,希望对大家有用!
C/C++游戏编程比较系统的学习路线
c语言入门 程序设计-算法-运算符-顺序 分支 循环结构。C语言精通 数组-函数字串符
-指针-构造类型-预处理-存储管理-文件操作-数据结构。c++入门 面对对象编程-类和对象-运算符重载
-派生于继承,异常处理技术-C++语言 11标准-数据结构-(双向链表-双向队列-树-图)。c++精通
stl标准模板库(容器-迭代器-算法)正则表达式-boost标准模板库-socket网络编程-大型企业项目实战:
-员工信息管理系统-推箱子-俄罗斯方块-服务器-播放器-人工智能。windows高级工程师:win32/mfc
-windows高级编程-QT框架编程-大型企业级项目实战项目(人脸识别-车牌识别-局域网远程监控-等项目)
linux系统应用程序开发-linux内核构架研究-linux顶级网络服务器开发及搭建。大型企业项目实战
(linux内核高级虚拟内存驱动设计-linux网络间谍系统软件-linux内核网络数据劫持-linux网络阅读系统开发
等等)上述学习6个月时间左右,如果一天高效率用6个小时学习,加油奋吧,骚年们!
汉字是由“偏旁部首”组成的,英文是由26个字母组成的,而C语言则是由“0”和1“”组成的。0和1不同的组合代表着不同的信息,计算机和微型芯片就是通过0和1不同的组合运转起来的。那么0和1是如何丰富计算机语言的呢?
二进制:学习C语言首先要先学习二进制,因
0和1
为计算机只认识0和1,你如果给它一个2,它就不认识了。学习二进制之前,我们先回顾一下什么是十进制,十进制就是“逢十进一,借一当十”,例如:0,1,2,3,4,5,6,7,8,9,;接下来个位变为0,十位加1,所以是10;同样二进制时“逢二进一,借一当二”:0,1;接下来应该是10B(B是二进制的后缀);所以在二进制中10代表的是十进制中的2。这个大家可以自己去尝试一下换算,总结一定的换算经验,道理都是一样的。
在举几个例子:数字2的二进制表示为10B,那么数字3为10B+1B=11B,数字4为11B+1B=100B;数字5为100B+1B=101B。以此类推,当十进制数为254时,对应二进制数为11111110B;从中我们可以发现十进制和二进制的转换规律:十进制数等于二进制数从左向右的值乘以对应位的位权2的n次方(n从0开始依次加1)的总和
二进制和十进制之间的转换
十六进制:十六进制和二进制大同小异,只不过十六进制是“逢十六进一,借一当十六”,另外十进制的“0~15”表示成十六进制为0~9表示不变,10对应的是A,11对应的是B,12对应的是C,13对应的是D,14对应的是E,15对应的是F;十六进制也有后缀“H”,如数字10为AH。不过在编程时我们一般使用前缀"0x",如"0xa"表示的是数字10,(这里不区分大小写);用法可以参考二进制。那么大家就要问了为什么有了二进制还要来十六进制呢?现在要大家用二进制写出数字254,大家会怎么写?11111110,没错,可是如果用十六进制呢?只要0xfe就可以了,而且十六进制计算机可以自动转换为二进制,这个大家在编程时多用用就会习惯了。
逻辑运算:在C语言中除了我们习惯的算术运算(就是加减乘除)还有逻辑运算,这是非常重要的。
1、逻辑“与”:“&”这是逻辑“与”的运算符,运算规则如下:0 & 0 = 0,0 & 1 = 0,1 & 0 = 0,1 & 1 =1;只有当两者都为1时结果才为1;在C语言中“&”表示的是“按位与”,如(01010101)&(11110000) = 01010000;相同位置的数进行逻辑与运算。
2、逻辑“或”:“|”这是逻辑“或”的运算符,运算规则如下:0 | 0 = 0,0 | 1 = 1,1 | 0 = 1,1 |1 =1;只有当两者都为0时结果才为0;在C语言中“|”表示的是“按位或”,如(01010101) | (11110000) = 11110101;相同位置的数进行逻辑或运算。
3、逻辑“非”:“!”这是逻辑“与”的运算符,运算规则如下:!0 = 1,!1 = 0;逻辑“非”就是改变当前值,在C语言中不是0那就是1了,在C语言中“~”表示的是“按位取反”,如~11110000 = 00001111。(注意“!”运算只对单一位进行取反)。
4、“同或”:“⊙”这是逻辑“与”的运算符,运算规则如下:0 ⊙ 0 = 1,0 ⊙ 1 = 0,1 ⊙ 0 = 0,1 ⊙ 1 = 1;“同或”就是当两个数值相同时结果才为1,“同或”在C语言中没有规定的符号,不过在C语言中如何使用大家可以参考接下来的“异或”。
5、“异或”:“⊕”这是逻辑“与”的运算符,运算规则如下:0 ⊕ 0 = 0,0 ⊕ 1 = 1,1 ⊕ 0 = 1,1 ⊕ 1 = 0;“异或”就是当两个数值不相同时结果才为1,“异或”在C语言中的符号为“^”,它也是“按位异或”,如(01010101) ^ (11110000) = (10100101);
数据类型:这是贯穿C语言的内容,而且关系到程序能否运行。
常用的数据类型如下表:
数据类型
在C语言中存储单位都是按“字节”(Byte)进行计算的,一个字节占8个二进制位,例如上面的unsigned char(无符号字符类型)所表示的就是一个字节的类型,最小为00000000,最大为11111111;而char(带符号的字符类型)所表示的也是一个字节的类型,只是符号为占用最高位,而在二进制中1表示符号时为负号,0表示符号时为正号,而它的范围为-128~127,其中10000000表示为-128,这一点大家要注意。
整型:unsigned int和int占4个字节,也是4个unsigned char或char ,它所能表示的范围也就更大了,长整形和浮点型分别占多少字节大家也可以去百度一下,其中float和double中一些位表示整数部分,一些位表示小数部分,这些内容大家可以自己去探讨一下。
在这里要提醒大家合理的使用这些数据类型,因为计算机的存储是有限的,假如你要定义一个字符表示1,如果用char,可以这样char m = 1,也可以使用int m = 1;但是前者只占1个字节,而后者就占4个字节,其中3个字节就浪费了;当然如果你要表示256,用char就不行,因为char最大为127,所以,我们要合理使用数据类型,从一点一滴做起,这样才不会出现在逻辑上都想得通,但是实际程序运行出错的情况。
好了,今天就先写到这里,大家可以先消化一下,也欢迎大家给我提出宝贵的意见,每一天都和大家一起进步。
领取专属 10元无门槛券
私享最新 技术干货