列如一个数组a[5],我想在 ( )()(3)()()第三个位置赋值3,然后用for循环scanf输入4个值时自动只赋予空缺的项,3的值和位置都不变
|
|
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等于1a==1,就是a等于1等于不代表赋值!
“ + - * / ”加减乘除运算符:就和写数学题里面嘚加减乘除一样。。
运算顺序也遵循数学的运算顺序都是计算完之后,再把计算结果赋值给=号左边的变量
sizeof运算符:计算数据类型所占内存的大小,并以字节的方式返回
既然看这篇文章的人,都是第一次接触编程那么,我再补充一个小知识吧!
char类型的数据占1个字節
int类型的数据,占4个字节
double类型的数据占8个字节
这个是基本的知识,得掌握不过在不同的编译器当中,可能占的字节有点不一样会有些出入。如果你想知道自己的编译器是怎么算的就用sizeof运算符试试看吧!
“%”取余运算符,也有人叫取模运算符:就是将一个算数表达式嘚的余数作为结果返回这个余数的值。
比如:a=6%4;那么a的值就是2就是把余数返回。
注意:这个运算符还有个特点我们都知道,数学计算里面只有正整数才有余数的相关计算,可是在编程中居然也可以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=++aa的初始值为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语言,它上可九天摘月下可伍洋捉鳖”。
我有一个微信公众号经常会分享一些C语言/C++技术相关的干货;如果你喜欢我的分享,可以用微信搜索“C语言学习部落”关注
歡迎大家加入千人交流答疑裙:627+012+464