引用
- int a; //创建一个int 类型的数据a
- 在c语言中可以将int换个名字 用 Typedef (常用于结构体中)(如 Typedef int Myint; Myint a;相当于int a; )而不能对变量a重新取名字
- 在 C++中用到 引用 可以对变量a换个名字(相当于指针 直接对 a 的地址进行操作 常指针)
void text()
{
int a = 10;
int b = 30;
int *p = &a;//指针操作 (int * 为指针)
*p = 20;//此时 a = 20
// p = b;这是错误的
int &q = b;//(为引用 q为b的 别名)
q = 40;//(此时b = 40)
q = a;//并不是a的别名为q 而是将a的值赋值给b 此时b = 20
}
引用不分配内存 并且申明要和原型保持一致 与被引用的右相同的地址
申明的时候必须初始化,一经初始化,不可变更
一个变量可以被多次引用,指这个变量有多个别名
&前有数据类型即为引用,其他皆为地
在c中子程序要想直接改变主程序的值自能通过指针将地址传过去修改地址所指向空间的值
void text(int n)//将a的值赋值给n n = a;
{
n = 20;//在这里只改变了n的值斌没有改变a的值
}
void text2(int *p)//在这里使用了指针将a的地址传给p
{
*p = 30;
}
int main()
{
int a = 10;
text(a);//这里只传递了a的值
text2(&a);//传递了a的地址
return 0;
}
在C++是改变主程序的值可以用指针也可以用引用下边为引用 指针用法和C语言一样 参考上边C语言
void text(int &p)
{
p = 10;//这里直接改变了a的值
}
int main()
{
int a = 0;
int &p = a;//int &看为一个整体 相当于一个类型(如 int)给a取个别名为p
text(p);//或text(a);
return 0;
}