* 与 & 区别

基本概念

C++ 是 C 语言的超集。
C++ 有一种C 语言不存在的变量类型 --- 引用变量(简成引用)。

  • 指针是存地址的变量,可以指向内存地址。
    & 应用变量:本质上是指针的别名(但不能被编译器实例化)

2. 基本示例 *

int main() {
    int a = 1;
    int *b = &a;
    cout << "a: " << a << endl;
    cout << "b: " << b << endl;
    *b = 100;
    cout << "&a: " << &a << endl;
    cout << "b: " << b << endl;
    cout << "a: " << a << endl;
    return 0;
}

b是a的指针,指向a的地址。*b 的改变,就是a的改变。

输出结果为:

a: 1
b: 0x7ffee3ffa898
&a: 0x7ffee3ffa898
b: 0x7ffee3ffa898
a: 100

3. 基本示例 &

int main() {
    int a = 1;
    int &b = a;
    int c = a;
    cout << "a:" << a << endl;
    cout << "b:" << b << endl;
    cout << "c:" << c << endl;
    b = 100;
    cout << "a:" << a << endl;
    cout << "b:" << b << endl;
    cout << "c:" << c << endl;
    cout << "&a:" << &a << endl;
    cout << "&b:" << &b << endl;
    cout << "&c:" << &c << endl;
    return 0;
}

& 引用 相当于 别名。 b 值改动了,就是a 改动。
输出结果为:

a:1
b:1
c:1
a:100
b:100
c:1
&a:0x7ffeee126858
&b:0x7ffeee126858
&c:0x7ffeee12684c
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。