看到这里,你还想搞C++吗? 哈哈哈,试试看,应该不会掉头发吧。 在C++语言中,随用随定义 在C语言中,重复定义多个同名的全局变量是合法的。 在C++中,不允许定义多个同名的全局变量。
在C语言的struct定义一组变量的集合,C编译器并不认为这是一种新的类型 在C++中的struct是一个新的定义声明
左值和右值得 当左值的条件是,要有内存空间。
在C++中 三目运算,可以当左值。
const常亮是由编译器处理的,提供类型检查和作用阈检查 宏定义由预处理器处理,单纯的文本替换。
C++枚举,在定义的时候,一般每隔10个分割一次,为了便于查找和使用。 int &re = a; //int &使用引用数据类型,re就是a的别名。 类型 &引用名=已定义的变量名;
注意:(1)在声明引用时,必须立即对它进行初始化,不能声明完成后再赋值。 (2)为引用提供的初始值可以是变量或另一个引用。 (3)指针是通过地址间接访问某个变量,而引用是通过别名直接访问某个变量,使用引用可以简化程序。(因为不用书写“*”)。 (4)引用在初始化后不能再重新声明为另一个变量的引用(别名)。 (5)可以将引用的地址赋给一个指针,此时指针指向原来的变量。 (6)引用仅在声明时带有引用运算符“&”,以后像普通变量一样使用,不能再带“&”,其它场合使用的“&”都是地址操作符。 int i=5; int &j=i; //声明j是一个整型变量的引用,用整形变量i对它进行初始化
// 指针的方式实现 int change_1(int *p) { int a = 20; p = &a; return *p; } //引用的方式实现(这里不用使用*),这就是引用 void change_2(int &r) { r = 100; } int main(void) { int a = 10; int b = 0; b = change_1(&a); cout << b << endl; int c = 30; change_2(c); cout << c << endl; system("pause"); return 0; } #include<iostream> using namespace std; //iostream提供一种命名空间,标准的命名空间是std; enum season { SPR, SUM, AUT, WIN }; void print_info(int a, int b) { cout << "a = " <<a << " " << "b = " << b<<endl; } //指针交换 void swap01(int *a, int *b) { int tmp; tmp = *a; *a = *b; *b = tmp; } //引用交换 void swap02(int &a, int &b) { int tmp; tmp = a; a = b; b = tmp; } int main(void) { int a = 20; int b = 30; //指针交换 swap01(&a,&b); print_info(a,b); printf("-----------\n"); //引用实现交换 swap02(a, b); print_info(a, b); system("pause"); return 0; }(完!)