C语言面向过程编程的语言;C++面向对象编程的语言。
两者有本质的区别,其实是完全不同的两种语言,只不过C++兼容C语言而已。
其中C++则一般看作是对C语言的扩展。因为C语言没有面向对象的语法结构,而当时业界又迫切需要面向对象的编程特性,所以贝尔实验室的开发者就为C语言添加了面向对象的结构。现在C++已经不只是C语言的扩展了,它已经完全可以被看作一种新的编程语言。虽然C语言的特性以及库函数仍然被C++支持,不过C++拥有自己的独立的类库体系,功能相当强大。
C/C++的优点在于与底层比较接近,可以控制的粒度更加精细,是开发系统级应用的最佳选择。关于跨平台,C/C++也是很好的语言,因为所有平台都支持,不同的是,不同平台支持的实现不同,类库不同,要编写跨平台的程序,需要选择跨平台的类库,如标准类库,如果标准类库的支持不够也只需要附加编写一个跨平台的支持类库。
在C语言中,运算符还挺多的,有的看起来甚至不像是个运算符。比如:%,这个百分比符合,实际上就是个运算符。
基本运算符
“=”赋值运算符:将右边的值赋给左边
例如:a=2;a这个变量就得到了2这个值。
注意:区别“==”,这个是关系运算符!才是我们说的等于,比如1==1,就是1等于1,a==1,就是a等于1,等于不代表赋值!
“ + - * / ”加减乘除运算符:就和写数学题里面的加减乘除一样。。。
例如:a=1+3/3*4-2
运算顺序也遵循数学的运算顺序,都是计算完之后,再把计算结果赋值给=号左边的变量
其他运算符
sizeof运算符:计算数据类型所占内存的大小,并以字节的方式返回。
小编推荐一个学C语言/C++的学习裙【 六二七,零一二,四六四 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!
例如:a=sizeof(int); 返回值4给a,说明int类型的数据占4个字节。
既然看这篇文章的人,都是第一次接触编程,那么,我再补充一个小知识吧!
char类型的数据,占1个字节
int类型的数据,占4个字节
double类型的数据,占8个字节
这个是基本的知识,得掌握,不过在不同的编译器当中,可能占的字节有点不一样,会有些出入。如果你想知道自己的编译器是怎么算的,就用sizeof运算符试试看吧!
“%”取余运算符,也有人叫取模运算符:就是将一个算数表达式的的余数作为结果,返回这个余数的值。
比如:a=6%4;那么a的值就是2。就是把余数返回。
小编推荐一个学C语言/C++的学习裙【 六二七,零一二,四六四 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!
注意:这个运算符还有个特点,我们都知道,数学计算里面,只有正整数才有余数的相关计算,可是在编程中,居然也可以a=-6%4;结果是 -2!这一点很神奇,如果深入研究的话,会涉及到《计算机组成原理》里面的内存相关知识,我要是没记错的话,好像和“溢出”有关,好久以前看的,当时囫囵吞枣,学的也不认真,也没有老师教,感兴趣的读者,可以去了解一下。哦,对了,这个运算符只能用于整数。
自加自减运算符
“a++和++a”自加运算符:这两者是有区别的,新手还很容易错,a++是先将a赋值,再自己加1,++a是先自己加1,然后在赋值。
比如:b=a++;(a初始值为1)那么b的值就是1,然后c=a++,这时候,c的值就为2了,因为在赋值给b的时候,a自己加了1
再比如:b=++a,a的初始值为1,此时b的值就为2,因为a先自己加了1,才赋值给b的。
“--a和a--”自减运算符:道理和上面一样,就是变成了减法而已。
关于优先级的问题,如果你不能确认那个运算符先算,很简单,你把要先算的加上括号就可以了!
最后送大家一张图:
最后我来说一说了解C的必要性:
1. 对内存和硬件的操作,是目前绝大部分高级语言所隐藏的,只有坚实C背景的同学,才可以考虑的更多,如果你想对原理有更多的了解,那么C其实是不可绕过的一个环节。
2. 想要缔造一个新的系统和语言,没有C是不行滴(或许C++勉强)。
3. 不管是OC的消息系统,Java的自动回收,Ruby的动态类扩充,这些花哨且时髦的东西,其实都可以用C来实现,而且很多都是用C来实现的,如果你想自己实施,看C吧。
4. 破解和分析程序,C可以起到很大的作用。C是可以人为创建Bug来破坏一个系统滴。
最后我引用我的一个大牛朋友的话:“请不要忽视C语言,它上可九天摘月,下可五洋捉鳖”。
今天的内容就到这了,如果喜欢,关注,收藏,点赞!每天更新!
领取专属 10元无门槛券
私享最新 技术干货