C++ int和数组的指针

C++ int和数组的指针,c++,pointers,C++,Pointers,你好,我是一个编程高手,我对指针有点怀疑 #include<iostream> using namespace std; int main() { int myAge = 16; int* agePtr = &myAge; cout << "address of pointer" << agePtr << "Data at memory address" << *agePtr << end

你好,我是一个编程高手,我对指针有点怀疑

#include<iostream>
using namespace std;

int main()
{
    int myAge = 16;
    int* agePtr = &myAge;

    cout << "address of pointer" << agePtr << "Data at memory address" << *agePtr << endl;

    int badNums[5] = {4, 13, 14, 24, 34};
    int* numArrayPtr = badNums;

    cout<< "address" << numArrayPtr << "value" << *numArrayPtr << endl;

    numArrayPtr++;

    cout<< "address" << numArrayPtr << "value" << *numArrayPtr << endl;

    return 0;
}
#包括
使用名称空间std;
int main()
{
int myAge=16;
int*agePtr=&myAge;

CUT

数组按照C++的规则隐式地指向指针,C++中有很多,这是其中之一。当把数组分配给指针时,它会给你指向数组中第一个元素的指针。 获取数组的地址(

&badNums
)将生成指向数组的指针,而不是指向第一个元素。数组指针稍微复杂一些,并在类型中编码数组的大小。该赋值的正确类型是
int(*numarayptr)[5]=&badNums;
其中
numarayptr
是指向5
int
s数组的指针


要通过指针递增指针指向的值,必须首先使用
运算符*
解除对该指针的引用,就像要读取或写入该值一样。它看起来像
(*numArrayPtr)++在第一种情况下,使用
&myAge
指的是该整数值的地址。在对整数指针进行赋值时,必须使用
badNums
而不是
&badNums
的原因是
badNums
已经是一个整数指针。数组隐式衰减为指针,因此使用如果您正在执行以下操作,则该作业中的de>&badNums
将起作用:

    int **numArrayPtr = &badNums;
它只是指向
badNums
地址的指针

    int *numArrayPtr = badNums;
这意味着我们有一个指向
badNums
地址的指针

当我们有这样一个整数指针时,您可以通过执行以下操作来增加数组中每个整数的值:

    for (int i = 0; i < 5; i++){
          numArrayPtr[i]++;
    }
我希望这能充分回答你的问题

我对指针有点怀疑

#include<iostream>
using namespace std;

int main()
{
    int myAge = 16;
    int* agePtr = &myAge;

    cout << "address of pointer" << agePtr << "Data at memory address" << *agePtr << endl;

    int badNums[5] = {4, 13, 14, 24, 34};
    int* numArrayPtr = badNums;

    cout<< "address" << numArrayPtr << "value" << *numArrayPtr << endl;

    numArrayPtr++;

    cout<< "address" << numArrayPtr << "value" << *numArrayPtr << endl;

    return 0;
}
正如
badnums[i]
中的
i
是数组
badnums[]
中的索引一样,指针是存储在内存中的某个对象的索引。由于任何变量都存储在内存中,因此您可以使用指向该变量所包含内容的指针来访问该变量的内容(这是语言在代码中使用变量时隐式执行的操作)


不同之处在于,对于指针,您必须知道指针指定的类型,而索引使用它指向的变量的索引元素的已知类型…因为迟早您会使用指针迭代某些已知变量的内容。

因为它是一个数组,当您将其分配给指针时,您可以实际指向第一个元素。“数组引用衰减为指针”源代码:关于这一点有很多不同的观点,但事实上作为初学者,你可以忽略指针和C++风格的数组几乎相当长的时间,转向更有趣的东西。nd-c型阵列