鱼cpython学习者 发表于 2021-7-30 17:49:14

数组指针问题

#include <iostream>
using namespace std;
int main()
{
        int a = {10, 20, 30};
        int b = a;
       
        cout << a
               << endl;
       
        cout << &b;
       
        return 0;
}
输出如下:
0x9ffb64
0x9ffb60
我奇怪的是,c++的数组名被解释为第一个元素的地址,而&b就是数组第一个元素的地址,可为什么a, &b的值相差了int类型的大小4?
但我改成:
int* b = &a;
...
cout << b;
输出就一样了
为什么?

万千只cnm 发表于 2021-7-30 19:06:12

啊?
int b =
你只是把第一个元素的值给了b

int *b
&a 就是 a
b的值就是a也就是数组的首地址

鱼cpython学习者 发表于 2021-7-30 20:07:58

万千只cnm 发表于 2021-7-30 19:06
啊?
int b =
你只是把第一个元素的值给了b


懂了,谢谢
页: [1]
查看完整版本: 数组指针问题