C++入门基础_30分钟入门教程
计算机C语言基础知识3篇

计算机C语言基础知识第一篇:C语言基础知识介绍C语言是一种计算机编程语言,由贝尔实验室的Dennis M. Ritchie于1972年发明。
C语言是一种结构化的、面向过程的语言,可以被用来写操作系统、编译器、驱动程序等等。
学习C语言可以帮助我们更好地理解计算机的工作原理,并且学习C语言也是学习其他编程语言的基础。
C语言的语法结构比较简单,主要由三个部分组成:数据类型、控制结构和函数。
首先,我们来介绍一下C语言中的数据类型。
C语言中的数据类型包括基本数据类型和构造数据类型。
基本数据类型包括整型、字符型、浮点型和双精度浮点型等,用于表示不同种类的数据。
构造数据类型包括数组、结构体和联合体等,可以用来表示更加复杂的数据结构。
接下来,我们来介绍C语言中常用的控制结构。
C语言中的控制结构主要有三种:分支结构、循环结构和跳转结构。
其中,分支结构主要包括if语句和switch语句,用来根据条件执行不同的代码块。
循环结构主要包括while循环、do-while 循环和for循环,用来重复执行代码块。
跳转结构包括goto语句和return语句,可以用来跳转到程序的其他部分。
最后,我们来介绍C语言中的函数。
函数是C语言中的一个重要部分,可以用来实现代码的模块化、避免重复编写等。
在C语言中,函数有返回值和无返回值两种类型,而且函数可以嵌套调用。
通过对C语言基础知识的学习,我们可以更好地掌握计算机编程的基本原理和技术手段,为以后的学习打下坚实的基础。
第二篇:C语言数据类型详解C语言中的数据类型可以分为两种:基本数据类型和构造数据类型。
基本数据类型包括整型、字符型、浮点型和双精度浮点型等,不同数据类型可以表示不同种类的数据。
第一篇介绍了基本数据类型的概念,这里我们来详细介绍一下C语言中的基本数据类型。
整型:整型数据用来表示整数,包括有符号整型和无符号整型。
有符号整型用来表示正整数、负整数和零,常用的有int、short、long和long long等;无符号整型用来表示正整数和零,常用的有unsigned int、unsigned short、unsigned long和unsigned long long等。
C语言自学入门技巧

C语言自学入门技巧C语言自学入门技巧学习C语言不是一朝一夕的事情,但也不需要花费很长的时间才能精通。
下面店铺就为大家介绍一下C语言自学入门技巧吧!C语言自学入门技巧11、程语语言其实是一个很初级的工具,但是又必须熟练的掌握它,学懂一门编程语言就好像学会了写字,但是会写字的人不见得会写文章,而会写文章又不见的写得好。
可是如果不会写字,那就一定写不出文章来。
2、在学习C语言之前,应该学好计算机基础。
里面的很多概念对于C程序员都是非常重要的。
如果在着手学习C之前,或者已经开始学习C,但是碰到了很多问题,应该再把计算机基础的书拿来好好看看。
如果有足够的耐心,十足的毅力,应该再学习C语言之前学学汇编,这会对许多比较细腻的概念有清醒的认识。
那么可以在看完一遍C语言的教材后再看,但是一定要看一遍,一定会受益匪浅。
不管看什么书,先认真地看懂,不要贪速度,应该力求深入的理解。
如果能够比较熟练的解决一本教材上的所有习题,那么就应该转入对算法的学习,尽管此时的C语言还称不上精通,有许多细节问题还不了解,许多问题还没有碰到,但是这些问题会在后面的工作和学习中得到解决的。
3、不需要多少资料,掌握一本《The C Programming Language》就足够了。
继续学习就更加容易。
建议不要找捷径,通过考试除外,真正的水平提高是建立在编程实践积累基础上的,必须一个一个程序的完成才能提高。
C语言自学入门技巧2一、要读就读好书,否则不如不读所有初学者面临的第一个问题便是:如何选择教材。
好的开始是成功的一半,选择一本优秀的教材是事半功倍的关键因素。
不幸的是,学校通常会帮你指定一本很差劲的C语言课本;而幸运的是,你还可以再次选择。
大名鼎鼎的谭浩强教授出了一本《C语言程序设计》,据说发行量有超过400万,据我所知,很多学校都会推荐这本书作为C语言课本。
虽然本人的名字(谭浩宇)跟教授仅仅一字之差,但我是无比坚定地黑他这本书的。
这本书不是写给计算机专业的学生的,而是给那些需要考计算机等级考试的其它专业学生看的。
(1小时学会C语言51单片机)C语言入门教程

(四)说到这里,我们来讲讲数码管的显示方式,可分为两种:动态扫描和静态显示。
上面我们所说的即为静态显示。
但是如果我们采用动态扫描显示,那么就可以解决上面的问题,即可以显示多个数码管了。
上面我们所说的静态显示把数码管的COM脚接至VCC或GND端,其他的接至PX口上,这样只要PX口上输出相应的高低电平,就可以显示对应的数字或字符。
但是如果我们采用动态扫描的方法,比如显示6个数码管,硬件连接可以这样解决:a--dp还是接至P0.0--P0.7上,还有6个COM脚再接至另外口的P2.0--P2.5。
P0口作段选(控制数字字符)P2口作位选(选通哪个数码管导通)这样我们控制P0和P2口就可以控制6个数码管了。
但是,细心的朋友,会问这样的问题:P2位选,是让数码管一个一个亮的,那还是不能控制6个一起亮或灭嘛!?^_^ 想想好象是对的哦?怎么办...难道错了?嘿嘿,问你个问题?黑夜里,拿着一支烟,在你面前快速的晃动,你会发现什么样的现象?是不是原本不连续的点变成了一条看上去连续的曲线或者直线!再回过头来,仔细想想我们的数码管!原理是一样的,你可别忘了,我们的单片机可是一个计算机哦,计算机的运算速度,大家可想而知吧!这里再说说51单片机的机器周期和时钟周期等概念。
所谓机器周期就是访问一次存储器的时间。
而1个机器周期包括12个时钟周期。
如果单片机工作在12M晶体下,那么一个时钟周期为:1/12微妙。
一个机器周期12*1/12 = 1微妙。
如果晶体为6M,时钟周期和机器周期各是多少呢?在汇编中,我们还要关心,指令执行的机器周期长短不一,有1个周期、2个周期和4个周期等。
说着说着,跑了这么远了...还是回到原来的话题,如果我们把位选的P2也看作上面的“烟”一划而过,那么我们看到的是不是6个一起亮或一起灭了!^_^ 哈哈,原来如此... 记住,在任何某一时刻,有且只有一个数码管能发光。
如果你能把这句话理解了,你是真明白我的意思了!朋友,现在给你个任务,让6个数码管分别显示1、2、3、4、5、6。
C语言从入门到精通(吐血分享)

六大表达式一、算术表达式(数学表达式)(1)运算符:数学:{} [] () + - * / + -C:()、+/-、* / %、+/-正负(2)单目、双目运算符单目:一个操作数 +5 -9双目:两个操作数 5+6 7*8(3)%:<1>双目运算符<2>操作数:两个数都是整型资料1%2<3>奇数: x%2!=0偶数: x%2==0整除: %(4)在算术运算中,如果运算符两端的类型都是整型数据,那么结果是整型资料1/2 0 5/3 1 8/9 0 9/8 1在算术运算中,如果运算符两端的类型不一致,向空间大的一方转化. 1/2.0 1.0/2.0 0.5 1.0/5 1.0/5.0 0.22 4(5)优先级:(6)结合性:(7)使用多层括号,一律使用小括号(8)强制性类型转化格式:(类型名)表达式注:1)类型名括号不能省2)不存在四舍五入2.赋值表达式(1)格式变量名=表达式(2)变数的实质:存储单元(3) =:赋值号==:等号优先级:只比逗号高结合性:自右向左(4)表达式:常量、变数、六大表达式(5)在赋值表达式中,赋值号的左端只能为变量名5+8=a b=a(6) int x=2,y=3;x=y:将变量y所代表的单元中的值取出来赋值给变量x所代表的单元中x=x+1:将变量x所代表的单元中的值取出来+1赋值给变量x代表的单元中x=x:左x: 代表x所标识的单元右x:将变量x所代表的单元中的值取出来单元=值(7)变量中的值在不断进行更新x=2x=3x=99(8)复合赋值表达式(算术和赋值) 1)运算符:*= /= %= += -=2)优先级:与”=“同级3)结合性:自右向左4)复合赋值有隐含小括号功能3.关系表达式(1)逻辑值平时 C 5678 -2真非0 1假 0 0(2)运算符> >= < <= == != (3)优先级> >= < <= == != (4)结合性自左向右(5)结果:逻辑值5<6 7>94.逻辑表达式(1)运算符!:(非补集)&&:(与交集)||:(或者并集)(2)!:单目运算&& ||:双目(3)优先级高到低:! && ||(4)结合性!:自右向左&& ||:自左向右(5)使用!0 1 !非0 0非0&&非0 1 1||1 1非0&&0 0 1||0 10&&非0 0 0||1 10&&0 0 0||0 0(6)结果:逻辑值(1,0)(7)数学表示方式|x|<=9 -9<=x<=9 x>=-9&&x<=9|x|>=9 x>=9或x<=-9 x>=9||x<=-9(8)断路问题<1> 在逻辑&&运算中,如果表达式1已经为逻辑假,表达式2不用执行,该表达式值为逻辑假<2>在逻辑||运算中,如果表达式1已经为逻辑真,表达式2不用执行,该表达式值为逻辑真5.条件表达式格式:表达式1?表达式2:表达式3(1)三目运算(2)运算过程:表达式1为真,执行表达式2表达式1为假,执行表达式36.逗号表达式(1)格式:表达式1,表达式2,表达式3,表达式4,……,表达式n (2)优先级:所有运算符中优先级最低(3)结合性:自左向右int a=8;a+=3,a=5,a+3; ?a 表达式的值?附:<1>++ 、--1>功能++:+1 自动赋值--: -1 自动赋值2>单目运算3>操作数可以放在运算符的右边也可以放在运算符的左边 i++ ++i i-- --i4>操作数可以为整型、实型的变量 2++ 2=2+1 错i++ i=i+1 ++i i=i+1i-- i=i-1 --i i=i-15>表达式值和变数值int i;表达式值变数值i=5 i++ 5 6i=5 ++i 6 6i=5 i-- 5 4i=5 --i 4 4只要给出式子的整体(i++,--i)则使用的是表达式的值;如果给出变量名,使用的是变量值int i=5;j=40/i++; j=40/6 66>-i++:-(i++) j=-i++; j=-5 i=6<2>所有运算符的优先级(六个表达式)高=》低() ++/-- !算术表达式关系表达式逻辑表达式条件表达式赋值表达式逗号表达式。
C语言define定义函数-C语言零基础入门教程

C语⾔define定义函数-C语⾔零基础⼊门教程⽬录零基础 C/C++ 学习路线推荐 : >>⼀.define 简介中,除了可以⽤定义⼀个标识符来表⽰⼀个常量,还可以⽤,例如://定义常量#define MAX_VALUE 100 //定义整型变量MAX_VALUE值为100#define USER_NAME "huge" //定义字符串变量USER_NAME值为"huge"#define PI 3.1415926 //定义浮点数变量PI值为3.1415926//定义函数#define MAX(a,b) (a>b)?a:b //取两个数最⼤值#define MIN(a,b) (a<b)?a:b //取两个数最⼩值凡是以#开头的均为预处理指令,预处理⼜叫预编译。
预编译不是编译,⽽是编译前的处理。
这个操作是在正式编译之前由系统⾃动完成的。
⼆.define 定义函数1.define 定义不带参数的函数/******************************************************************************************///@Author:猿说编程//@Blog(个⼈博客地址): //@File:C语⾔教程 - C语⾔ define定义函数//@Time:2021/06/27 08:00//@Motto:不积跬步⽆以⾄千⾥,不积⼩流⽆以成江海,程序⼈⽣的精彩需要坚持不懈地积累!/******************************************************************************************/#include <stdio.h>#include <stdlib.h>#include <string>#define RESULT (x*2+5)int main(){int x = 10;printf("RESULT是:%d\n",RESULT);return 0;}/*RESULT是:25*/2.define 定义带参数的函数/******************************************************************************************///@Author:猿说编程//@Blog(个⼈博客地址): //@File:C语⾔教程 - C语⾔ define定义函数//@Time:2021/06/27 08:00//@Motto:不积跬步⽆以⾄千⾥,不积⼩流⽆以成江海,程序⼈⽣的精彩需要坚持不懈地积累!/******************************************************************************************/#include <stdio.h>#include <stdlib.h>#include <string>#define MAX(a,b) (a>b)?a:b //取两个数最⼤值#define MIN(a,b) (a<b)?a:b //取两个数最⼩值int main(){printf("最⼤值是:%d\n",MAX(5,100));printf("最⼩值是:%d\n",MIN(5,100));return 0;}/*最⼤值是:100最⼩值是:5*/三.define 定义函数陷阱1.define 函数陷阱⼀/******************************************************************************************///@Author:猿说编程//@Blog(个⼈博客地址): //@File:C语⾔教程 - C语⾔ define定义函数//@Time:2021/06/27 08:00//@Motto:不积跬步⽆以⾄千⾥,不积⼩流⽆以成江海,程序⼈⽣的精彩需要坚持不懈地积累!/******************************************************************************************/#include <stdio.h>#include <stdlib.h>#include <string>#define RESULT(x) x*xint main(){printf("RESULT是:%d\n",RESULT(2));printf("RESULT是:%d\n",RESULT(2+1));return 0;}/*RESULT是:4RESULT是:5*/很蒙蔽??为什么第⼆个计算结果不是9,⽽是5??#define RESULT(x) x*xRESULT(2) 等价 2*2 = 4RESULT(2+1) 等价 2+1*2+1 = 52.define 函数陷阱⼀解决办法/******************************************************************************************///@Author:猿说编程//@Blog(个⼈博客地址): //@File:C语⾔教程 - C语⾔ define定义函数//@Time:2021/06/27 08:00//@Motto:不积跬步⽆以⾄千⾥,不积⼩流⽆以成江海,程序⼈⽣的精彩需要坚持不懈地积累!/******************************************************************************************/#include <stdio.h>#include <stdlib.h>#include <string>#define RESULT(x) (x)*(x) //在参数两侧加括号int main(){printf("RESULT是:%d\n",RESULT(2));printf("RESULT是:%d\n",RESULT(2+1)); //等价 (2+1)*(2+1) = 9return 0;}/*RESULT是:4RESULT是:9*/3.define 函数陷阱⼆/******************************************************************************************///@Author:猿说编程//@Blog(个⼈博客地址): //@File:C语⾔教程 - C语⾔ define定义函数//@Time:2021/06/27 08:00//@Motto:不积跬步⽆以⾄千⾥,不积⼩流⽆以成江海,程序⼈⽣的精彩需要坚持不懈地积累!/******************************************************************************************/#include <stdio.h>#include <stdlib.h>#include <string>#define RESULT(x) (x)*(x)int main(){printf("RESULT是:%d\n",RESULT(2));printf("RESULT是:%d\n",9/RESULT(2+1));return 0;}/*RESULT是:4RESULT是:9*/很蒙蔽??为什么第⼆个计算结果不是1,⽽是9??#define RESULT(x) x*xRESULT(2) 等价 2*2 = 49/RESULT(2+1) 等价 9/(2+1)*(2+1) = 54.define 函数陷阱⼆解决办法/******************************************************************************************///@Author:猿说编程//@Blog(个⼈博客地址): //@File:C语⾔教程 - C语⾔ define定义函数//@Time:2021/06/27 08:00//@Motto:不积跬步⽆以⾄千⾥,不积⼩流⽆以成江海,程序⼈⽣的精彩需要坚持不懈地积累!/******************************************************************************************/#include <stdio.h>#include <stdlib.h>#include <string>#define RESULT(x) ((x)*(x)) //在参数两侧加括号,整个表达式也需要加上括号int main(){printf("RESULT是:%d\n",RESULT(2));printf("RESULT是:%d\n",9/RESULT(2+1));return 0;}/*RESULT是:4RESULT是:1*/以上讨论说明,对于宏定义,保险的做法是不仅应在参数两侧加括号,也应在整个字符串外加括号。
51单片机C语言入门教程

51单片机C语言学习杂记学习单片机实在不是件易事,一来要购买高价格的编程器,仿真器,二来要学习编程语言,还有众多种类的单片机选择真是件让人头痛的事。
在众多单片机中51架构的芯片风行很久,学习资料也相对很多,是初学的较好的选择之一。
51的编程语言常用的有二种,一种是汇编语言,一种是C语言。
汇编语言的机器代码生成效率很高但可读性却并不强,复杂一点的程序就更是难读懂,而C语言在大多数情况下其机器代码生成效率和汇编语言相当,但可读性和可移植性却远远超过汇编语言,而且C语言还可以嵌入汇编来解决高时效性的代码编写问题。
对于开发周期来说,中大型的软件编写用C语言的开发周期通常要小于汇编语言很多。
综合以上C语言的优点,我在学习时选择了C语言。
以后的教程也只是我在学习过程中的一些学习笔记和随笔,在这里加以整理和修改,希望和大家一起分享,一起交流,一起学习,一起进步。
*注:可以肯定的说这个教程只是为初学或入门者准备的,笔者本人也只是菜鸟一只,有望各位大侠高手指点错误提出建议。
明浩2003-3-30pnzwzw@第一课建立您的第一个C项目使用C语言肯定要使用到C编译器,以便把写好的C程序编译为机器码,这样单片机才能执行编写好的程序。
KEIL uVISION2是众多单片机应用开发软件中优秀的软件之一,它支持众多不同公司的MCS51架构的芯片,它集编辑,编译,仿真等于一体,同时还支持,PLM,汇编和C语言的程序设计,它的界面和常用的微软VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。
因此很多开发51应用的工程师或普通的单片机爱好者,都对它十分喜欢。
以上简单介绍了KEIL51软件,要使用KEIL51软件,必需先要安装它。
KEIL51是一个商业的软件,对于我们这些普通爱好者可以到KEIL中国代理周立功公司的网站上下载一份能编译2K的DEMO版软件,基本可以满足一般的个人学习和小型应用的开发。
【C语言C++编程学习笔记】基础语法,第一个简单的实例编程入门教程!

【C语⾔C++编程学习笔记】基础语法,第⼀个简单的实例编程⼊门教程!C语⾔/C++编程学习:⼀个简单的实例如果你能知道该程序将会在显⽰器上显⽰⼀些内容,那说明你还是知道⼀些的!确实如此,但所要显⽰的确切内容不是显⽽易见的,所以请运⾏程序来观看结果。
⾸先,⽤你熟悉的编辑器建⽴⼀个上⾯这个样的程序,然后给这个程序取⼀个名字,并以 .c 作为结尾以满⾜所在系统对⽂件名格式的要求。
例如,你可以把它命名为 helloworld.c。
现在编译并运⾏该程序。
如果⼀切运⾏正常,其显⽰结果为:实例简单说明◆ #include ←包含另⼀个⽂件这是程序的第⼀⾏。
它的作⽤相当于你在⽂件中的这⾏所在的位置键⼊了⽂件 stdio.h 的完整内容。
实际上,它是⼀种剪切和粘贴操作,这样可以⽅便地在多个程序间共享公⽤的信息。
#include 语句是 C预处理指令的⼀个例⼦。
通常,C 编译器在编译前要对源代码做⼀些准备⼯作;这称为预处理。
stdio.h ⽂件作为所有 C编译包的⼀部分提供,它包含了有关输出输⼊函数的信息以供编译器使⽤。
这个名字代表标准输⼊输出头⽂件。
我们称之为头⽂件,C语⾔中通常都带有许多头⽂件。
◆ int main () ←函数名接下来的这⾏代码声明了⼀个 main函数。
⼀个 C语⾔程序总是从称为 main()的函数开始执⾏的。
你可以对你所⽤的其他函数任意命名,但是 main()必须是开始的函数,所以说,main()函数在程序中是唯⼀的。
那么圆括号的功能呢?它们表明 main()是⼀个函数。
以后你将了解到更多的函数。
但现在,请你记住这个函数是 C程序的基本模块。
int 指明了 main()函数的返回类型。
这意味着 main()函数返回值的类型是整数。
返回到哪⾥呢?返回给操作系统。
如果浏览⽼版本的 C代码,你将发现程序常常以:main()这种形式开始。
C90标准勉强允许这种形式,但是 C99标准不允许。
因此即使你当前的编译器允许,也不要这么做,请注意规范。
C语言入门必须掌握的75个知识点

C 语言入门必须掌握的 75个知识点1、 C 语言中整数默认为 INT 型,两个整数相除(如 1/2结果仍然是整数,要得到带小数点的答案则要改成 1.0/22、在 C 语言中, “ =”是赋值运算符,表示把某个值赋给某个变量(X=0即把 0值赋给 X 变量; “ ==”是关系运算符,表示“等于” (X==0即 X 等于 0 ,在编写 C 程序时要注意区分。
3、 1个字节等于 8位二进制(某整形数据按照 2字节在内存中分配空间,即该数据对应的二进制形式是 16位二进制 ; 在 AS C Ⅱ码中,英文字母(不分大小写、英文标点占一个字节,中文汉字、中文标点占两个字节。
4、基本运算符的优先等级 ------(PS:手机无法显示部分符号“! ” than 算术运算符 (+/-/*than关系运算符 than 逻辑运算符 than 赋值运算符 (=;要想从 C 菜鸟变成 C 老手,一些基本的优先等级是必须知道的(C 运算符的优先等级详见附录 C5、关于 putchar 函数 ------putchar 函数即字符输出函数,表示向输出设备(显示器输出一个字符。
无论用户输作何种输入,函数都只会输出字符(putchar(65输出结果是“ A ” , putchar(… 65‟ 输出结果是“ 65” ; putchar 函数可以通过输出控制字符,让程序执行某种指令(putchar(… \n‟ 则程序会执行换行指令。
6、教材在介绍格式符的章节里有不准确的地方(见 P33 ------d 格式符、 s 格式符、 f 格式符的介绍里, “ m ”应是最少输出位数(书上的描述是“总位数” :%md, %ms, %mf,分别对应 ------输出最少 m 位整型数据, m 位字符串, m 位浮点数 , 位数不足时左补空格。
7、对于我们来说, C 语言不仅是一门必修课。
现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机,单片机的前景是很广阔的(有兴趣的同学可以向老师咨询或者上网了解 , 要设计出现代化的电子产品无疑要懂得用单片机。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C++入门知识C++是一门应用非常广泛的计算机程序设计语言。
它既支持过程化程序设计,也支持面向对象程序设计。
从操作系统、设备控制到数据库、网络、多媒体等众多的应用领域都能看到它的身影。
目前,业界应用比较广泛的是它的两个变种:Borland C++和Visual C++。
这两种C++都是在标准C++的基础上做了一些扩展而来。
本书将基于Visual C++ 6.0版本的开发环境,向读者讲授标准C++的强大功能和编程方法。
本章包括以下内容:❑C++概述;❑开发工具;❑C++程序的结构;❑编码规范;❑标识符。
通过本章的学习,读者可以为后面的学习打好基础,并且可以对C++有一个基本认识。
1.1 概述C++作为当今业界应用最为广泛的编程语言之一,其涵盖的内容非常广泛而多样。
本节将首先给读者一个初步的概念。
1.1.1 C++的发展史C++由美国贝尔实验室的Bjarne Stroustrup博士在20世纪80年代初期发明并实现,最初被称作C with Classes。
1983年,C with Classes被更名为C++。
1985年10月发布了第一个商业化版本。
同年,C++的第一本编程手册《C++程序设计语言》出版。
1989年,发布了第二版。
1990年,出版了The Annotated C++ Reference Manual。
这本书后来成为标准化的基础。
稍后又引入了模板、异常处理、命名空间、新的强制转型,以及布尔类型等特性。
ANSI-ISO委员会于1998年对C++进行了标准化:ISO/IEC 14882-1998。
从此,C++成为一种具有国际标准的编程语言,通常被称作ANSI/ISO C++。
2003年,又发布了该标准的修正版。
2005年,一份名为Library Technical Report 1(简称TR1)的技术报告发布。
事实上,至今为止没有任何一款编译器完全支持ISO C++,但是Borland C++和Visual C++已经足够强大。
现在,Loki、MPL等程序库为代表的产生式编程和模板元编程的出现又给了C++一个新的发展高峰。
1.1.2 为什么要选择C++C++语言是由C语言扩充而来。
它是一门混合型的语言,既支持传统的结构化程序设计,第1章C++预备知识又支持面向对象的程序设计,这使得C++非常流行。
它在编程中支持面向对象。
因此,它比C更适合人们的思考方式,并且比C要安全、可靠、有效。
但是它并不像Java那样全面实现类的使用,这使得它很灵活,能够适应多种场合的需要。
C++是编译语言,性能良好,效率更高。
它不像Java、PHP、ASP等解释型语言,需要在运行时转换为机器码,或者读一条语句执行一条。
它直接被编译为机器可识别的机器码。
C++编写的程序独立性好。
只要C++编译时产生的机器码不依赖外部的动态链接库,C++就可以在不需要安装额外程序的情况下,移动到运行同样操作系统的其他机器和微处理器上。
而移动Java程序时需要先安装Java运行期库。
这是C++语言成功流行的一个重要原因。
C++语言应用极为广泛。
尤其在底层编程和系统级编程上更是C++的传统优势应用。
在数据库和多媒体方面,C++又以其卓越的稳定性而赢得了荣誉。
1.1.3 对面向对象方法的支持对象是人们要进行研究的任何事物。
面向对象的核心思想是对象和对象间的消息,是建立在“对象”基础上的方法学。
它将系统看做对象的组合,每个对象都能接受并处理数据,然后和其他对象通过消息来交换数据。
面向对象编程具有以下3个基本特征:封装、继承和多态。
❑在C++中,用类来封装数据和数据上的操作,外界看不到该类的属性和方法。
如果需要的话,系统一般会为每个属性提供set/get函数对。
❑继承就是从父类继承旧的属性、参数等。
C++可以进行公有、私有、保护3种类型的继承。
有时为了避免内存的浪费,也可以进行虚继承。
虚继承中,整个继承体系里公有的基类将不会被重复分配空间。
❑多态指用多种形态来实现。
C++中的多态包括函数重载、子类与基类间的覆盖、虚函数、运算符重载以及抽象类等方式。
1.2 开发工具要想发挥C++的强大功能,就需要一个优秀的集成开发环境,因为一个好的编程环境常常可以起到事半功倍的效果。
集成开发环境(IDE)是一个将程序编辑器、编译器、调试工具和其他建立应用程序的工具集成在一起,用于开发应用程序的软件系统。
本节将向读者介绍常见的几款C++开发环境,并着重介绍本书所用到的开发环境。
1.2.1 常见的C++开发工具目前,传统的C++开发工具有C++ Builder、Visual C++两种,新近又出现了Eclipse、Code::Blocks、Dev-C++、Mingw等开发工具。
它们各有千秋,下面将简单介绍一下它们的特性。
·3·第1篇面向过程的C++编程1.Visual StudioVisual Studio是微软公司推出的开发环境,它是目前最流行的Windows平台应用程序开发环境。
在Visual Studio中可以创建应用程序和网络应用程序,以及智能设备应用程序和Office插件等。
从7.0开始,Visual Studio加入了.Net技术,类似Java的JVM。
目前,最新版本为9.0,也被称做Visual Studio 2008。
如果不想使用.Net技术,6.0版本也是一个不错的选择。
说明:Visual Studio对标准C++做了扩展,习惯上将在Visual Studio中实现的C++称为Visual C++,即VC。
VC是目前使用最广泛的C++开发语言,Visual Studio也是使用最广泛的开发工具。
2.C++ BuilderC++ Builder是另一款比较流行的C++开发工具。
它由Borland公司于1998年推出,也是Windows下的开发工具。
C++ Builder具有高度安全性、高可靠性、快速性的编译优化方法,所以编译出的软件执行速度很快。
所有符合ANSI/ISO标准的原代码都可以在C++ Builder 中编译,而且支持最新的ANSI C++/C语言特征。
3.Dev-C++Dev-C++是Windows平台下的开源C++编程环境。
它集成了GCC、MinGW32等众多自由软件,界面类似Visual Studio,但体积要小的多。
它的缺点是难以胜任规模较大的软件项目,但对于初学者是一个不错的选择。
4.AnjutaAnjuta是一款GNOME桌面环境下的C/C++编程的集成环境,也是开源软件。
它不仅有项目管理、交互式调试以及强大的代码编辑和语法增色的功能,还可以直接开发Glade图形界面的程序。
但是,它主要用在Linux、UNIX平台下,不支持Windows平台。
目前,最新版本是2.4.x,可以从站点获得。
5.Code::BlocksCode::Blocks是一款全功能的、跨平台的C/C++集成开发环境,属于开源软件。
它提供了众多的工程模板,包括控制台应用、动态连接库、OpenGL应用、QT应用、Win32 GUI 应用等。
Code::Blocks的另一引人之处在于它具有丰富的插件,包括代码格式化、类向导、代码补全、代码统计、To-Do列表,以及WindowsXP外观等各种各样的插件。
此外,它不仅支持GNU GCC编译器,还支持MS Visual C++、Borland C++编译器5.5,以及Digital Mars C等多种编译器。
6.EclipseEclipse是目前开源平台中最著名的集成开发环境。
最初主要用来支持Java语言编程,目前通过插件CDT也可以用来开发C/C++程序。
因为它本身只是一个框架,因此插件众多是它·4·第1章C++预备知识的一大特点。
这使得Eclipse拥有其他支持单一语言的IDE环境很难具有的灵活性。
此外,还有很多IDE也都支持C++开发,例如Visual Slick Edit、NetBeans、Understand C 等,读者可以根据自己的需要选择适合自己的开发环境。
1.2.2 Visual C++ 6.0开发环境简介Visual C++是微软公司推出的目前使用极为广泛的基于Windows平台的可视化集成开发环境。
它包含了一个文本编辑器、资源编辑器、工程编译工具、一个增量连接器、源代码浏览器、集成调试工具,以及一套联机文档MSDN。
Visual C++ IDE一般由3部分组成:Developer Studio、MFC、Platform SDK。
1.Developer Studio这是一个集成开发环境,它提供了一个很好的编辑器和很多Wizard。
它不仅可以用来开发C、C++,还可以用来开发Visual Basic、VF等语言。
使用Developer Studio,可以完成创建、调试、修改应用程序等各种操作。
2.MFCMFC(Microsoft Foundation Classes,MFC)表示为微软基础类,它的应用程序的总体结构通常由开发人员从MFC类派生的几个类和一个CWinApp类对象(应用程序对象)组成。
但是用Visual C++编写代码也并不意味着一定要用MFC,使用STL、ATL、编写SDK程序一样没有限制。
说明:STL是Standard Template Library的缩写,表示标准模板库。
ATL是Active Template Library的缩写,表示活动模板库。
3.Platform SDKPlatform SDK是以Microsoft C/C++编译器为核心,配合MASM,辅以其他一些工具和文档资料。
SDK表示Software Development Kit,意为“软件开发工具包”。
Visual C++ 6.0支持的文件类型众多,如表1-1所示。
表1-1 文件类型由于功能强大,Visual C++ 6.0预定义的工程类型也非常多,如表1-2所示。
·5·第1篇面向过程的C++编程·6·表1-2 工程类型1.2.3 Visual C++ 6.0开发环境的使用Visual C++提供了一个集源程序编辑、代码编译与调试于一体的开发环境,这个环境称为集成开发环境。
通过集成开发环境程序员可以访问C++源代码编辑器、资源编辑器,使用内部调试器,并且可以创建工程文件。
本节将详细讲解Visual C++ 6.0集成开发环境各部分的使用方法。
1.主界面为了使用Visual C++ 6.0开发环境,首先需要单击“开始”|“程序”|Microsoft Visual Studio 6.0|Microsoft Visual C++ 6.0命令,打开IDE。
主界面如图1-1所示。
工程管理面板菜单条工具栏工作区输出窗口状态栏图1-1 Visual C++ 6.0 IDE第1章 C++预备知识·7·图中上部为菜单条,菜单条下面为工具栏。