C++ int &a,int a,int *a的比较

2022/2/11 20:12:32

本文主要是介绍C++ int &a,int a,int *a的比较,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

int a 是定义一个新的变量(新开了一个的地址):

e.g.

void swap_value(int a){
    cout << "函数中的a : " << &a << endl;
}

int main(){
    int a = 1;
    cout << "函数外的a : " << &a << endl;
    swap_value(a);
    return 0;
}

打印结果如下:

函数外的a : 0x7fff5c146888
函数中的a : 0x7fff5c14684c

int &a 定义的是a的引用:

这样定义的变量的地址会与原变量的地址相同,就是一个地址同时指向了两个变量。

e.g.

void swap_value(int &a){
    cout << "函数中的a : " << &a << endl;
}

int main(){
    int a = 1;
    cout << "函数外的a : " << &a << endl;
    swap_value(a);
    return 0;
}

打印结果如下:

函数外的a : 0x7fff5c146888
函数中的a : 0x7fff5dc63888

int *a 定义的是一个指针变量(将原先的变量的地址赋值给它)

e.g.

void swap_value(int *a){
    cout << "函数中的a : " << a << endl;
}

int main(){
    int a = 1;
    cout << "函数外的a : " << &a << endl;
    swap_value(&a);
    return 0;
}

打印结果如下:

函数外的a : 0x7fff5c146888
函数中的a : 0x7fff5c14684c

所以我们发现 int a 这样定义会新开一个地址来存放这个变量,

但是 int *a 和 int &a 这样定义是将原地址直接给这个变量,只不过一个保存的是地址,一个保存的是值。

未经允许,不得转载。



这篇关于C++ int &a,int a,int *a的比较的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程