声明和定义的区别
声明:只是说明有这个东西,没有为他开辟内存。
定义:为其开辟内存,甚至直接赋值。
//声明
#define number
//定义
int number;
指针很引用的区别
指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;
引用:是跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已。
int a=1; int *p=&a;
int a=1; int &b=a;
上面定义了一个整型变量a,指针变量p表示的是指向a的存储单元的地址,即存的是地址,
而整型变量b表示a的引用,两者表示的是同一个东西,所占的内存也是同一个存储单元。
参数中加不加取地址符的区别
void fun(string a)
{
a="nihao";
}
int main()
{
string text="shijie";
fun(text);
cont<<text<<endl;
return 0;
}
结果:
shijie
void fun(string &a)
{
a="nihao";
}
int main()
{
string text="shijie";
fun(text);
cont<<text<<endl;
return 0;
}
结果:
nihao
第一个a中传的是形参,第二个&a是引用a,即a的别名,实际上指向的是同一块内存单元。