C语言是面向过程的,而C++是面向对象的
C和C++的区别:
C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。
C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。 所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”。
C与C++的最大区别:在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”,而就语言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,错!算法是程序设计的基础,好的设计如果没有好的算法,一样不行。而且,“C加上好的设计”也能写出非常好的东西。

很多小伙伴都老是会碰到疑问,其实还是基础没打扎实,这些题如果你不看答案你能知道多少呢?如果还有很多不知道就证明基础没打扎实,如果你还在入门纠结,如果你还在苦恼怎么入门!小编推荐一个学C语言/C++的学习裙【 六九九,四七零,五九六 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!
今天讲循环,很多时候我们要对不同的数据值应用相同的计算,假设没有循环,那么要处理多少组数据值,就必须重复编写多少组相同的指令,这是非常繁琐的。我举例解释一下,假设我们要计算1到100的平方和(1*1+2*2+3*3+......+100*100),没有循环的话,那我们是不是要首先定义一个求总和的变量int sum=0,然后我们要sum = sum+1*1;sum = sum+2*2;sum = sum+3*3,我们要写一百条这样的语句,是不是很痛苦,其实不过就是使用sum的当前值+n的平方,然后将得出的结果赋值给sum。我们用到的指令都是相同的,那我们为什么不能简化它呢,所以就诞生了循环。
我们在前面其实已经列举出了C语言里的所有关键字,其中有一个是for,它就是一种循环语句,它可以使一段代码执行指定的次数,它的用法是这样的:
代码段1
for(count = 1;count <= 10;count++)
{
循环代码段;
}
代码段2
for循环的()里面其实包含了用两个分号隔开的三部分,中间的count<=10这个是循环执行的条件,意思就是只有当count<=10这个条件成立时,我们才会进入for循环里面去执行循环代码段,假设count=11了,那循环就会退出;左边的count = 1;很明显是变量赋初值,为什么会有这个东西呢,因为假设我们没有这一步,那么count<=10这个条件我们就不知道是否成立,我们的程序就可能会得出意想不到的结果;最右边的count++其实可以看成是count = count + 1,++这个运算符叫递增运算符,它会将存储在整数变量中的值递增1,类似的还有递减预算符--,为什么要这样做呢,假设没有这一步,那么我们的count会始终是一个固定的值,比如说1,那么count<=10这个条件就会永远成立,循环会一直跑下去,这时候我们就说它是一个死循环(可自行脑补恐怖游轮)。
我来完整的叙述一下for循环的执行过程,首先当我们程序执行完代码段1之后,在执行for循环之前,我们首先会进行count=1给count赋初值,接着我们会判断循环条件count <= 10是否成立,假设条件不成立,我们就跳到代码段2的地方开始执行程序了,假设条件成立,那么我们会进入到大括号(当循环代码段只有一条语句时大括号可以省略)里面,循环代码段执行完成后,我们会执行count++的操作(这里要注意,不要看它是放在for的头部,其实它是在循环代码段执行完后才执行的);接下来我们会再次跳到for循环的头部,但是这一次我们只进行count <= 10条件判断是否成立(赋初值只在第一次进入循环前进行一次,后面都不会进行count = 1这条操作了),此时count的值为2(因为我们之前进行了count++),count <= 10条件依然成立,然后我们又进入循环执行循环代码段,之后再次进行count++,然后再回到循环判断条件,如此反复,直到count = 11,这时候count <= 10条件不成立了,我们就跳到代码段2执行了,这就是循环执行的完整过程。当然我们for循环头部的三个部分都可以替换成别的甚至省略(但是这两个分号不能省略),比如我们可以for(int value=10;value>=1;value=value-2){}或者for(;;){}(这个for我们暂时当做是死循环,后面我们会讲到跳出循环的其他语句)
理论我们就讲到这里,现在我们来完成前面的问题,如何计算1到100的平方和,现在我么已经有了循环语句,观察问题,我们可以发现循环的初值和条件应该就是1、100这两个数的某种形式了,我给出的参考是:
#include
int main()
{
int sum = 0;
int i;
for(i = 1;i <= 100;i++)
{
sum = sum + i * i;
}
printf("1到100的平方和=%d ",sum);
return 0;
}
构建运行后就能得出正确结果了
接下来我们讲一个很重要的概念--嵌套循环,有时需要将一个循环放在另一个循环里面。例如计算某条街上每间房子的居住人数。这时候要进入每间房子,计算每间房子的居住人数。统计所有的房子是一个外部循环,在外部循环每次迭代时,都要使用一个内部循环来计算居住人数。
再比如,我们要输出如下形式的乘法表,当我们只用普通for循环时我们要怎么实现呢?
for(i = 1;i <= 1;i++)
{
printf("%dX1=%d ",i,i*i);
}
printf(" ");
for(i = 1;i <= 2;i++)
{
printf("%dX2=%d ",i,i*i);
}
printf(" ");
for(i = 1;i <= 3;i++)
{
printf("%dX3=%d ",i,i*i);
}
printf(" ");
。。。。。。
如果是九九乘法表,我们就要使用9个for循环,如果换成100*100呢,那我们岂不是要使用100个for循环了,那岂不是又陷入了我们刚开始不使用循环来求1到100平方和的怪圈了吗?
那我们就必须要考虑使用嵌套循环了,我们只需要多定义一个变量就可以了。
代码和运行结果在下面
小编推荐一个学C语言/C++的学习裙【 六九九,四七零,五九六 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!
这应该是我们这系列文章目前写过的最难的代码了,我讲解一下这个嵌套for循环的执行过程。首先在外层for循环里面,我们会进行i=1的赋初值操作,然后我们判断i<=9,条件成立我们进入外层循环里面,这时我们会来到里层for循环,在这里会进行j=1的赋初值操作,然后判断j<=i,此时j=1,i=1,所以会进入里层for里面,在这里有一句打印printf,它会打印jXi=j*i(j和i会用实际值代替,所以这里其实是打印了1X1=1),接下来我们会第二次来到里层for的头部,此时,j的值变为了2(因为里层for循环代码块结束后执行了j++),此时j<=i不再成立,我们会跳到循环外的printf(“ ”)来执行,这其实就是打印了一个换行,然后i++,这是第一次外层循环的结束。
然后进行第二次外层循环,此时i=2,i<=9条件成立,我们来到外层循环里面,到达里层循环的头部,此时j赋初值为1(记住这里是从外层循环进来的,不是本身循环,所以这个赋初值还会进行),然后j<=i成立,进入里层循环,我们会打印1X2=2,然后执行j++操作;再次来到里层循环头部,此时j=2,j<=i成立,再次进入里层循环里面,然后打印2X2=4,j++后再次跳到里层循环头部,此时j<=i不成立,所以里层循环不执行,跳到printf(“ ”)打印换行,然后i++后第三次来到外层循环头部。如此反复,一直到循环结束。
因为这是我们从开始到现在写过的最难的代码,所以大家要好好理解,实在不理解的可以提问,有问题不问以后会越学越难的,这里大家可以用假想的办法,把i <= 9这里换成i<=3,如果只进行三次外层循环,大家看能不能理解
今天讲了强大了for循环和烦人的嵌套循环,最后以一点愉快的知识结束吧!我再强调一遍,前面的知识不懂的一定要多问,我已经尽量以我绝对最简单的方式来讲解了,如果这样还看不懂,那我觉得可能在市面上你已经找不到一本你能懂的C语言书籍了。
最后的知识点是system函数的简单用法,在你的循环前面加上这么一句system("color 0A");当然,你最好要加入相关的头文件在前面#include,这时候你再构建运行,发现效果没
system函数的作用就是让系统执行一条cmd命令,有人之前甚至还问我什么是cmd,你点击左下角的windows图标那里,在运行里面输出cmd,点击确认出来的那个黑框就是cmd,
当你在里面输入color 0A时,你会发现界面里的字也变绿了
小编推荐一个学C语言/C++的学习裙【 六九九,四七零,五九六 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!
看到没有,理论上只要是在cmd里能够执行的命令,都能够使用system函数在代码里面运行,当然要用双引号括起来作为system函数的参数。比如使用shutdown关机也是一样的,有兴趣的可以自己尝试下。今天结束了,欲知后事如何且听下回分解(手动滑稽)~
这些是C/C++能做的
服务器开发工程师、人工智能、云计算工程师、信息安全(黑客反黑客)、大数据 、数据平台、嵌入式工程师、流媒体服务器、数据控解、图像处理、音频视频开发工程师、游戏服务器、分布式系统、游戏辅助等



