C语言是面向过程的,而C++是面向对象的
C和C++的区别:
C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。
C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。 所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”。
C与C++的最大区别:在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”,而就语言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,错!算法是程序设计的基础,好的设计如果没有好的算法,一样不行。而且,“C加上好的设计”也能写出非常好的东西。
部变量与全局变量
通过前面的学习,大家会发现变量既可以定义在函数内,也可以定义在函数外。那么定义在不同位置的变量,其作用域也是不同的。C 语言中的变量,按作用域范围可分为局部变量和全局变量,今天我们先看下面这张图来对它们来进行详细地讲解。
小编推荐一个学C语言/C++的学习裙【 六九九,四七零,五九六 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!
局部变量
局部变量就是在函数内部声明的变量,它只在本函数内有效,也就是说,只能在本函数内使用它。此外,局部变量只有当它所在的函数被调用时才会被使用,而当函数调用结束时局部变量就会失去作用。下面通过一个案例来演示:
#include
void show()
{
int x = 0;
}
void main()
{
printf("x的值为:%d ", x);
}
编译时会出现错误,如下图所示:
这个案例中,在 show() 函数内部定义了一个变量 x ,这个变量是个局部变量,它只在 show() 函数中有效。而当我们在 main() 函数试图输出 x 的值,由于 x 只在 show()函数中有效,在 main()函数中无效,所以编译器报告一条错误。
全局变量
在所有函数外部定义的变量称为全局变量(包括main()函数),它不属于哪一个函数,而是属于源程序。因此全局变量可以为程序中的所有函数所共用,它的有效范围从定义处开始到源程序结束。同样通过一个案例来演示:
#include
int x = 123;
void show()
{
printf("show()函数中,x的值为:%d ",x);
}
void main()
{
show();
printf("main()函数中,x的值为:%d ", x);
}
运行结果如图所示:
小编推荐一个学C语言/C++的学习裙【 六九九,四七零,五九六 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!
这个案例中,定义了一个变量 x ,它是在所有函数的外部定义的,所以是全局变量。然后调用 show() 函数,输出全局变量 x 的值,由于全局变量可以为程序中的所有函数所共用。所以 show() 函数成功地输出了变量 x 的值 123 。当程序结束时,全局变量x也随之结束,系统释放掉它所占用的内存。
从上面的例子可以看出,全局变量不像局部变量那样属于某个函数的,而是属于整个程序,那么假如局部变量与全局变量的名字相同,会发生什么情况呢?还是通过一个案例来演示:
#include
int x = 789;
void main()
{
int x = 123;
printf("x的值为:%d ", x);
}
运行的结果如图所示:
在这个案例中,第 5 行代码定义了一个局部变量 x 屏蔽掉了第 2 行的全局变量 x ,因此输出的结果为 123 ,而不是 789 。需要注意的是,当局部变量与全局变量重名时,全局变量会被屏蔽。
变量的作用域
在前面介绍过变量需要先定义后使用,但这并不意味着在变量定义之后的语句中一定可以使用该变量。变量需要在它的作用范围内才可以被使用,这个作用范围称为变量的作用域。还是通过一个案例来演示变量的作用域:
#include
int x=10;
void show()
{
int x=20;
printf("show()函数中,x的值为:%d ",x);
}
void main()
{
int x=30;
printf("main()函数中,x的值为:%d ",x);
show();
}
运行的结果如图所示:
小编推荐一个学C语言/C++的学习裙【 六九九,四七零,五九六 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!
在这个案例中,首先定义一个全局变量 x ,值初始为 10 ,作用域是整个程序。然后定义了一个局部变量 x ,初始为 20 ,作用域是整个 show() 函数内部。最后定义了一个局部变量 x ,值初始为 30 ,作用域是整个 main() 函数。
从运行结果可以看出来, main() 函数输出 x 的值为 30 ,这说明在 main() 函数中屏蔽掉了全局变量 x 。 而show() 函数输出 x 的值为 20 ,说明在 show() 函数中屏蔽掉了全局变量 x 。
这些是C/C++能做的
服务器开发工程师、人工智能、云计算工程师、信息安全(黑客反黑客)、大数据 、数据平台、嵌入式工程师、流媒体服务器、数据控解、图像处理、音频视频开发工程师、游戏服务器、分布式系统、游戏辅助等