上一讲鸡啄米给大家讲了VS2010的使用介绍,大家以后就可以用它来进行软件开发了,在编程入门的时候可以写些简单的程序先玩玩,实际编写代码试验下鸡啄米讲过的内容。
C++是从C中发展来的,可以兼容C。所以C++的一些基本语法跟C几乎是一样的。
先给大家看下一个简单的C++程序。
#include <iostream> void main(void) { cout << "Hello! \n"; }
告诉编译器对程序进行预处理时,就是在编译前的一个阶段,将文件iostream.h的代码嵌入到这条指令所在的位置。也就是对编译器来讲这句话相当于它所包含的全部代码。#include叫做编译指令,用来包含一些文件。这里包含的iostream.h是C++标准库里的文件,大家可以直接用,它声明了输入输出的有关信息。这类文件常放在程序开始的地方,所以叫做头文件。
main是主函数名,函数体用一对大括号括住。函数是C++程序里最小的功能单位。C++程序里必须有且只能有一个main函数,它是程序执行的入口,就是从它开始执行。main函数前的void表示此函数没有返回值,后面的void表示没有参数。cout<<"Hello! \n";是条语句,每条语句由分号结束。cout是C++标准库里预定义的对象,它的信息就放在之前包含的头文件iostream.h中,它是一个输出流对象,用操作符<<将后面的字符串输出到标准输出设备,一般是显示器。
我们写完这个程序后存成后缀名为.cpp的文件,叫做C++源文件,经过编译链接后生成exe可执行文件。此程序运行时会在屏幕上输出:Hello!(后面还会有个换行)。
下面鸡啄米先讲下C++语言所用的字符集,就是写C++程序时会用到的一些字符。C++语言的字符集由下述字符构成:1.英文字母:A~Z,a~z;2.数字字符:0~9;3.特殊字符:空格 ! # % ^ & * _ + = - ~ < > / \ ' " ; . , () [] {}。
然后鸡啄米再给大家讲下C++语言的词法记号,就是编程中用的关键字、变量名、运算符等等。这里介绍下C++语言的关键字、标识符、文字、运算符、分隔符和空白。
关键字:关键字是C++预定义的一些单词,我们定义变量常量时是不能使用的,它们有不同的用处,后面大家会看到。给大家列一下吧:auto bool break case catch char class const const_case continue default delete do double dynamic_cast else enum explicit extern false float for friend goto if inline int long mutable namespace new operate private protected public register reinterpret_cast return short signed sizeof static static_cast struct switch template this throw true try typedef typeid typename union unsigned using virtual void volatile while。
标识符:标识符是我们软件开发者自己声明的单词,用来命名一些实体,比如:函数名、变量名、类名、对象名等。它的构成规则:1.以大写字母、小写字母或下划线开头;2.可由大写字母、小写字母、下划线或数字组成;3.字母区分大小写,大写字母和小写字母表示不同的标识符;4.不能用C++关键字。
文字:指在程序中用符号表示的数据,包括数字、字符、字符串和布尔文字(true和false)。后面会具体讲各种文字。
运算符:用来进行运算的符号,比如:+,-,*,/等等。
分隔符:起分隔作用,用来分隔词法记号或程序正文,分隔符有:() {} , : ; 。 这些分隔符不进行实际的操作,只是用来构造程序,用法后面也会介绍。
空白:编译分析代码的时候会将代码分成词法记号和空白,空白包括空格、制表符(TAB键产生的字符)、换行符(回车键产生的字符)和注释。空白用来表示词法记号的开始和结束位置,其余的空格将被编译器忽略。比如int i;跟int i;是等价的。注释是对代码进行必要的注解和说明,编译时不会理会注释部分,C++语言有两种注释方法:1.使用“/*”和“*/”括起注释文字,例如,/*this is a comment*/;2.使用“//”,从“//”开始直到它所在行的行尾,所有的字符都被作为注释处理,比如,// this is a comment。
鸡啄米再给大家讲C++的各个数据类型。
1.基本数据类型。
C++的基本数据类型有bool(布尔型)、char(字符型)、int(整型)、float(浮点型,表示实数)、double(双精度浮点型)。除了bool型外,有两大类:整数和浮点数。因为char型本质上就是整型,只不过是一个字节的整数,用来存放字符的ASCII码。还有几个关键字signed和unsigned、short和long起修饰作用。
short修饰int时,short int表示短整型,占2个字节,这里int可以省略,也就是说short就是short int。long可以修饰int和double,long int表示长整型,占4个字节,同样int也可以省略。int在不同的编译环境中可能占的字节数不一样,大多数环境中占用4个字节。short类型固定占2个字节,long类型固定占4个字节。
signed和unsigned可以用来修饰char型、int型、short型和long型。signed表示有符号数,unsigned表示无符号数。有符号数以二进制补码形式存储,最高位为符号位,“0”表示正,“1”表示负。无符号整数只能是正数。char型、int型、short型和long型默认情况也就是不加修饰的情况下是有符号(signed)的。
bool型数据取值只能是false(假)或true(真)。它所占的字节数在不同的编译系统中可能也不一样,但大多数是占1个字节。
2.常量
所谓常量就是在程序运行过程中始终不会变的量,就是直接用文字表示的值,例如,1,23,true,'B'都是常量。常量又分整型常量、实型常量、字符常量、字符串常量和布尔常量。
整型常量包括正整数、负整数和零。整型常量的形式有十进制、八进制和十六进制。十进制我们都知道了,八进制常量的数字必须以数字0开头,比如0324,-0123。十六进制整型常量的数字必须以0x开头,比如0x3af。
实型常量就是数学上的小数,有两种表示形式:一般形式和指数形式。一般形式比如:13.7,-22.5。指数形式比如:0.2E+2表示0.2*102。
字符常量是单引号括起来的一个字符,比如:'b','?'。还有一些不可显示字符,例如响铃、换行、制表符等等,C++提供了一种转义序列的表示法来表示这些字符。比如:\a表示响铃,\n表示换行,\t表示水平制表符,\b表示退格,\r表示回车,\\表示字符'\',\"表示双引号,\'表示单引号。ASCII字符常量占用1个字节。
字符串常量是用双引号括起来的字符序列,比如:"China"。字符串常量会在字符序列末尾添加'\0'作为结尾标记。
布尔常量只有两个:false(假)和true(真)。
3.变量
变量与常量一样也有自己的类型,在使用之前必须首先声明它的类型和名称。变量名也是标识符,因此命名规则应遵从标识符的命名规则。同一个语句中可以声明同一个类型的多个变量,变量声明语句的形式是这样的:数据类型 变量名1,变量名2,...,变量名n;。例如下面两条语句分别声明了两个int变量和两个float变量:int num,sum; float a,b;。在声明一个变量的同时可以给我赋一个初值,int num=3; double d=2.53; char c='a';。赋初值还有两一种形式,比如:int num(3);。
4.符号常量
我们除了可以用文字表示常量以外,还可以给常量起个名字,这就是符号常量。这个符号常量就代表了那个常量。符号常量在使用之前必须声明,跟变量相似。符号常量声明形式:const 数据类型说明符 常量名=常量值; 或 数据类型说明符 const 常量名=常量值;。例如,我们给圆周率起个名字,就是符号常量,const float pi=3.1415926;。还有一点必须注意,符号常量声明时必须赋初值,在其他时候不能改变它的值。使用符号常量与文字常量相比有很多好处:程序的可读性更高,我们看到这个名字就能看出它的具体意思,再就是最重要的,如果我们多个地方都用了上面那个pi常量,但后来圆周率的值精度我想改一下,只用3.14,这个时候怎么把所有的pi都换掉呢?我们只需要修改pi的声明就行了:const float pi=3.14;,但是如果使用文字常量即所有用圆周率的地方直接写的3.1415926,那么就必须全找到再换掉,这样不但麻烦而且容易漏掉。
好啦,今天鸡啄米就讲到这里了,这些都是C++语言语法的一些基本点,大家一定要掌握好哦。