1、C++预定义的标准流
(1)cin—标准输入—隐含设备:键盘
(2)cout—标准输出—隐含设备:屏幕
(3)Cerr—标准出错输出—隐含设备:屏幕
(4)Clog—cerr的缓冲形式—隐含设备:屏幕
2、C++允许将变量的声明放在程序的任何位置(但必须在使用该变量之前)。
如:
#include<iostream>
using namespace std;
int main()
{
cout<<"Please enter two numbers:"<<endl;
int a,b;
cin>>a>>b;
cout<<a<<b<<endl;
return 0;
}
3、C中常用define定义符号常量,定义的常量没有类型,不占据存储单元;C++中用const定义常变量,定义的常量具有变量的属性,有数据类型,占据存储单元,有地址,可用指针指向它,只是程序运行期间此变量的值是固定的,不能改变。
4、插入运算符"<<"和提取运算符">>"在C和C++位运算中是左移运算符和右移运算符,且在C++中又为输入输出运算符,这就是运算符的重载。
5、函数模板的定义:template<typename T>/template<class T>
函数模板只适用于函数参数个数相同而类型不同,且函数体相同的情况。
6、指定默认值的参数必须放在形参表列中的最右端,否则会出错。
使用带默认参数的函数时应注意:
(1)若函数的定义在函数调用之前,则应在函数定义中给出默认值;若函数的定义在函数调用之后,则在函数声明中给出默认值,函数定义时可不给默认值。
(2)一个函数不能即作为重载函数,又作为有默认参数的函数。
7、变量的引用(引用即别名):
(1)由于引用不是独立的变量,编译系统不给它单独分配存储单元,因此在建立引用时只有声明,没有定义,因此他必须与某一类型的数据相联系。声明引用时必须对它初始化。
(2)在声明一个变量的引用后,在本函数执行期间,该引用一直与其代表的变量相联系,不能再作为其他变量的别名。
(3)当&a的前面有类型标识符时,它是对引用的声明;若前面没有类型符,则&是取址运算符。
(4)引用的作用是用作函数参数,以扩充函数传递数据的功能。
#include<iostream>
using namespace std;
void swap(int &a,int &b)
{
int temp;
temp=a;
a=b;
b=temp;
}
int main()
{
int i=3,j=5;
swap(i,j);
cout<<i<<endl<<j<<endl;
return 0;
}
(5)不能建立void型的引用;不能建立引用的数组;可将变量的引用的地址赋给一个指针,此时指针指向原来的变量;可建立指针变量的引用;可用const对引用加以限制,不允许改变该引用的值;可用常量或表达式对引用进行初始化,但此时必须用const作声明。
8、使用内联函数可减少运行时间,但会增加目标程序的长度,因此只用于规模很小而使用频繁的函数,可大大提高运行速度。
9、
#include<iostream>
using namespace std;
float a=13.5;
int main()
{
int a=5;
cout<<a<<endl;
cout<<::a<<endl;
return 0;
}
上述::a表示全局作用域中的变量a。注意:不能用“::”访问函数中的局部变量。
10、字符串变量的运算:
(1)可直接用赋值运算符实现字符串复制;
(2)可直接用加法运算符实现字符串连接;
(3)可直接用关系运算符实现字符串比较;
(4)编译系统为每个字符串变量分配固定的字节数,用以存放字符串的地址。
注:用字符数组时不能这样做:
char str[10];
str="Hello!";
11、new和delete是C++动态分配和撤销内存空间的命令,若由于内存不足等原因而导致无法正常分配空间,则new会返回一空指针NULL,可通过该指针的值来判断分配空间是否成功。