Man*_*ngh 3 c++ arrays pointers
#include <iostream>
using namespace std;
const int MAX = 3;
int main ()
{
int var[MAX] = {10, 100, 200};
int *ptr;
// let us have array address in pointer.
ptr = var;
for (int i = 0; i < MAX; i++)
{
cout << "Address of var[" << i << "] = ";
cout << ptr << endl;
cout << "Value of var[" << i << "] = ";
cout << *ptr << endl;
// point to the next location
ptr++;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我不明白为什么这个代码应该正常的语法
ptr=&var[0];
Run Code Online (Sandbox Code Playgroud)
代替
ptr=var;
Run Code Online (Sandbox Code Playgroud)
如果var会是这样的
int var=49;
Run Code Online (Sandbox Code Playgroud)
然后我的推理版本成立,早期的程序失败.他们对阵列和单个数据点的任何明确的指针概念?
我不明白为什么这个代码应该正常的语法
Run Code Online (Sandbox Code Playgroud)ptr=&var[0];代替
Run Code Online (Sandbox Code Playgroud)ptr=var;
分配指针的两种方法是等效的.在将数组变量赋给指针C++的表达式中,将数组名称解释为指向数组初始元素的指针,即&var[0].
如果var会是这样的
Run Code Online (Sandbox Code Playgroud)int var=49;然后我的推理版本成立,早期的程序失败.
这是因为C++提供了对来自数组的指针的隐式转换,但不是来自标量变量.