C语言是面向过程的,而C++是面向对象的
C和C++的区别:
C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。
C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。 所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”。
C与C++的最大区别:在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”,而就语言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,错!算法是程序设计的基础,好的设计如果没有好的算法,一样不行。而且,“C加上好的设计”也能写出非常好的东西。
很多小伙伴都老是会碰到疑问,其实还是基础没打扎实,这些题如果你不看答案你能知道多少呢?如果还有很多不知道就证明基础没打扎实,如果你还在入门纠结,如果你还在苦恼怎么入门!小编推荐一个学C语言/C++的学习裙【 六九九,四七零,五九六 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!
我们前一章解读了第一个程序,大家现在肯定是希望能够编写出有用的程序,我们不希望程序只做打字员的工作,显示已经包含在代码中的固定信息,我们需要程序能够和外界交互,希望它每次都可以执行不同的操作,这时候我们就需要引入变量的概念,正是因为有变量的存在,程序才能变得如此多样性。
讲到变量,我们这里要牵扯是内存的概念,计算机执行程序时,组成程序的指令和数据都必须要存储到计算机的某个地方,这个地方就是计算机的内存,我们可以把内存想象成一排有顺序的盒子,每个盒子都有两种状态,满为1,空为0,每个盒子称为一个位(bit),为了方便,内存中的位以8个为一组,每8个位组成的一组称为一个字节(byte)。为了使用字节的内容,每个字节用一个编号表示,第一个字节是编号0,第二个字节是编号1,这样一直到计算机内存的最后一个字节,字节的这个编号我们称为字节的地址(address)。因此,每个字节的地址都是唯一的。这里一定要好好理解,不然以后学到指针会很吃力的。
变量是计算机里一块特定的内存,它是由一个或多个连续的字节所组成,一般是1、2、4、8或16个字节。每个变量都有一个名字,可以用该名字表示内存的这个位置,用来取出它包含的数据或往里面存入一个新数值。
我们说变量可以有一个或多个字节,那计算机怎么知道变量有几个字节呢?所以我们就需要给变量指定类型,变量的类型决定了为它分配多少个字节。
前面说了变量有编号(地址)、有名字还有类型,那要使用一个变量是不是要给它定义这三个部分呢?其实不用,我们只需要指定变量的名字和类型就可以使用它了,因为编号(地址)是系统分配的,这个不用我们操心。比如int a;(注意不要忘记分号)这样我们就定义了一个变量,变量的名字是a,变量的类型是int(就是整数变量,-2、-1、0、1、2...这种).这里的int在C语言里叫做关键字,其实关键字就是从英语里面取的一个很小的子集,再加上一些符号和规则,就组成了我们C语言的全部。C语言有几个标准的,最常见的就是89年颁布的C89标准(还有99年颁布的C99标准、11年颁布的C11标准等等),共有32个关键字,我列举出来,不理解不要紧,以后这些关键字基本都要讲到的。
1 数据类型关键字(12个):
(1) char :声明字符型变量或函数 (2) double :声明双精度变量或函数 (3) enum :声明枚举类型 (4) float:声明浮点型变量或函数 (5) int: 声明整型变量或函数 (6) long :声明长整型变量或函数 (7) short :声明短整型变量或函数 (8) signed:声明有符号类型变量或函数 (9) struct:声明结构体变量或函数 (10) union:声明共用体(联合)数据类型 (11) unsigned:声明无符号类型变量或函数 (12) void :声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用)
2控制语句关键字(12个):
A循环语句 (1) for:一种循环语句(可意会不可言传) (2) do :循环语句的循环体 (3) while :循环语句的循环条件 (4) break:跳出当前循环 (5) continue:结束当前循环,开始下一轮循环 B条件语句 (1)if: 条件语句 (2)else :条件语句否定分支(与 if 连用) (3)goto:无条件跳转语句 C开关语句 (1)switch :用于开关语句 (2)case:开关语句分支 (3)default:开关语句中的“其他”分支 D返回语句return :子程序返回语句(可以带参数,也看不带参数)
3 存储类型关键字(4个) :
(1)auto :声明自动变量 一般不使用 (2)extern:声明变量是在其他文件正声明(也可以看做是引用变量) (3)register:声明寄存器变量 (4)static :声明静态变量
4 其它关键字(4个):
(1)const :声明只读变量 (2)sizeof:计算数据类型长度 (3)typedef:用以给数据类型取别名(当然还有其他作用 (4)volatile:说明变量在程序执行中可被隐含地改变
记住我们取名字的时候要特别注意,因为变量的名字只能由字母、数字和下划线( _ )组成,并且要以字母开头(其实可以下划线开头,但是标准库里的变量也经常以下划线开头,为了防止冲突,我这里规定下以后变量名都以字母开头),所以8_Ball、Hash!、Mary-Lou这些全都是错误的变量名。
我们现在开始写使用变量的第一个程序:打开我们的编译器,新建一个工程,取名为Integer,我们依旧是选择控制台程序中的"Hello World"程序,建好之后我们打开
在上面的代码上新增两行
点击构建->运行后出来的结果为:
我们来解释下这两行的意义,第一行int iValue = 26;这个就是定义了一个变量,变量的名字(简称变量名)叫iValue(这个名字随便取,只要符合我们上面说的取名字规则就行),同时我们还为iValue赋了一个值为26,在变量的后面直接赋值我们一般也叫做初始化,我们也可以把这行拆成两行来写,效果是一样的。
int iValue;
iValue = 26;
第二行还是用到了我们之前的printf函数,但是它和我们下一行的printf使用明显不同,它拥有了两个参数,而且第一个参数里面有一个"%d",这是什么意思呢,其实就是把这两个参数全部都显示出来,不过第二个参数显示出来的位置就是“%d”出现的位置,我们把%d称为占位符,因为它输出的时候会被iValue的值给替换。
同样的,如果我们现在要定义两个整数变量,然后把这两个整数变量用printf显示出来呢,那么我们应该这样写:
小编推荐一个学C语言/C++的学习裙【 六九九,四七零,五九六 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!
我们再次点构建->运行,就会得出结果了:
当然,我们也可以把这两个整数变量使用一个printf显示出来,这样代码是这样:
我们点击构建->运行发现能得出同样的结果。我们看看代码有什么不一样呢,发现没有,我们的printf里面有了三个参数,而且第一个参数里面有了两个%d,这两个占位符其实就是为后面的第二个参数iValue1和第三个参数iValue3预留位置的。我们还可以有四个参数、五个参数、六个参数等等,只要我们在第一个参数里准备了足够多的%d。%d的意思就是把它表示的参数使用十进制整数显示出来,我们后面还会讲到以字符的形式显示出来,以其他进制的形式显示出来。
现在我们有了变量,我们可以进行基本的算术运算了,比如859*435+432/6-27%8,这个值等于多少呢,我们或许可以使用计算器,不过我们也可以在我们自己的程序中完成。
构建->运行之后是不是就出来了呢
用了好几次printf了吧,接下来我们讲另一个函数scanf,这个函数其实是和printf相对的一个函数,printf代表输出,而scanf代表输入,它需要我们在键盘上给它输入数据,它和printf比较相似,但是它使用的第一个参数后面的参数必须是地址,我们前面说了变量有地址(编号)、变量名和类型,我们在定义的时候只需要变量名和类型,因为系统会给我们的变量分配地址,但是我们这里需要地址该怎么办呢,其实很简单,只需要使用&这个符号就可以取的变量的地址了。我们接下来写这段代码:
点击构建->运行后,程序运行会提示我们输入一个整数,我们就随便输入一个整数,比如39,然后我们按下回车,这时候就会出来运行结果
看到了吧,其实我们只相当于添加了两行,
printf("请您输入整数iValue的值:");
scanf("%d",&iValue1);
第一行只是起到提示我们输出的作用,而第二行才是关键,它的第一个参数里面也有占位符,第二个参数就是iValue1的地址,注意iValue1前面加了地址符&。
那让我们接下来再使用我们刚刚学的scanf写一个有用的程序吧:
点击运行后,它会提示你输入你现在的年龄,比如我们这里输入26,按下回车
小编推荐一个学C语言/C++的学习裙【 六九九,四七零,五九六 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!
这段代码也很简单,首先定义了两个整数变量age和lifeDays,接下来的一句printf会提示你输入你的年龄,scanf("%d",&age); 这行才是真正让你输入年龄的代码,lifeDays = (100-age)*365;这行会计算,我们这里假设我们能活100岁(这里当然是不准的,每个人的寿命都不一样,或许哪天我们人类能够发明出计算寿命的公式,那么我们就能得出准确值了),然后使用 (100-age)*365就得出了我们还能活的天数,最后把我们把lifeDays的值使用printf打印出来。
这些是C/C++能做的
服务器开发工程师、人工智能、云计算工程师、信息安全(黑客反黑客)、大数据 、数据平台、嵌入式工程师、流媒体服务器、数据控解、图像处理、音频视频开发工程师、游戏服务器、分布式系统、游戏辅助等
看到了吧,时间真的很短暂啊,不知不觉,我们已经走过了人生的四分之一了,其实要计算一个人的存活天数是一件很残忍的事,但是比这个更残忍的是浪费自己的时间。