看到这里,你还想搞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;
}
(完!)