int a=100;
int b=200;
int* p1=&a; 指针的声明
int& r1=a; 引用的声明
指针和引用除了声明不同其他都一模一样
引用的内存地址无法修改,修改等于重新赋值。
int a=100;
int b=200;
int* p1=&a; 指针的声明
int& r1=a; 引用的声明
指针和引用除了声明不同其他都一模一样
引用的内存地址无法修改,修改等于重新赋值。
修改原变量
int a = 100;
int b = 200;
int& r = a; // r 是 a 的引用
//引用的地址不可更改
r = b; //这里不是r引用了b,而是对a的引 //用赋值,即 a = b,输出 a = 200.
Pointer
指针类型和引用类型
#include<iotream>
#include<string>
using namespace std;
void change(int& a,int& b){
a=1000;
b=2000;
}
公寓大楼 内存卡
房间 内存空间 内存地址(房间号)
int main()
{
int a=324;
int b=100;
string str="sdluxncjdnchsdvhjcbsnxndjbj";
cout<<str<<endl;
//指针可以访问变量的内存地址
//指针就是用来存储某个变量的内存地址的
//int* pA;//int * pA;int *pA;
//pA = &a;
//指针* 引用& reference
//指针取地址,引用某个变量
int a=100;
int b=200;
int* p1 = &a;
cout<<p1<<endl;
p1 = &b;
cout<<p1<<endl;
int& r1=a;
cout<<r1<<":"<<a<<endl;
r1 = b;//a=b
cout<<r1<<":"<<a<<endl;
b=400;
cout<<r1<<":"<<a<<endl;
//引用的内存地址没法修改
//引用不可以指向新的变量
int a=0,b=0;
change(a,b);
cout<<a<<b<<endl;
string s;
cin>>s;
return 0;
}
对引用类型的改变相当于对原变量的改变
和C#中的out 和 ref 的用法是相同的
int& 是引用类型
引用类型无法