代码:
antarctica_years_end s01, s02, s03;
s01.year = 1998;
antarctica_years_end* pa = &s02;
pa->year = 1999;
antarctica_years_end trio[3]; // array of 3 structures
trio[0].year = 2003;
antarctica_years_end* arp[3] = { &s01, &s02, &s03 };
std::cout << arp << " " << &s01 << std::endl;
线路:
std::cout << arp << " " << &s01 << std::endl;
输出:
0000007AFB0FFC68 0000007AFB0FFBB4
arp 和 &s01 不应该是一样的吗?根据到目前为止我所学到的知识,我知道数组的名称是其第一个元素的地址。 arp 是指针数组的数组名,&s01 是其第一个元素的地址。
我尝试将线路更改为:
std::cout << arp[0] << " " << &s01 << std::endl;
它打印出相同的地址。
0000008517DBF8E4 0000008517DBF8E4
如果这个问题很愚蠢,我很抱歉,我刚刚开始以编程方式学习 C++,并且对这种语言仍然很陌生。
希望对你有帮助
s1: [1998]
↑
&s1 = 0000007AFB0FFBB4
↓
arp: [0000007AFB0FFBB4][...]
↑
&arp = 0000007AFB0FFC68