1。C++提供了用关键字enum,struct,union和class建立用户自定义数据类型。和c一样,c++中的枚举也用关键字enum声明,但是,与c不同的是,c++声明的枚举是一种新的数据类型。
Ex·
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
enum Boolean {FALSE,TRUE};
struct Name
{
char first [10];
char last[10];
};
union Number
{
int i;
float j;
};
建立三种用户自定义数据类型,这三种自定义类型的标记名分别为Boolean,Name和Number。可以用这些标记名声明变量。
Ex.![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
Boolean done=FALSE;
Name student;
Number x;
2。如果C函数原型的圆括号中什么也没有,编译器就不检查参数且不对参数个数和类型做任何假定,在调用该函数是,给函数传递任何参数编译器都不会报错。
3。函数参数列表中用const限定符说明不能再函数中修改传递给函数的参数。const限定符还有一些其他用法。例如声明常量指针:
int *const iPTR=&intger;
这条语句把iPtr声明为指向一个整数的常量指针。iPtr所指向的值可以修改,但是不能把iPtr指向其他内存单元。
const int *iPtr=&intger;
这条语句把iPtr声明为指向整数常量的指针。iPtr所引用的值不能修改,但是可以吧iPtr指向其他内存单元。
4。默认参数必须是函数参数列表中的最右边的参数。
5。单目运算符(::)能够使程序访问与作用域内局部变量同名的全部变量。
6。C++和C对函数名的处理方式不同,所以试图把C代码和C++代码连接时,在C中编译的函数不能被
C++识别。要通知编译器一个或多个已经在C中编译,像下面写出其函数原型:
extern “C” 函数原型 //单个函数
extern “C”//多个函数
{
函数原型
}
这些声明通知编译器指定的函数不在C++中编译,因此不对连接说明中列出的函数名编码。这些函数能够得到正确的连接。