c++ 求教!定义一个数组和指针变量,利用指针变量给数组赋值后,分别利用数组名下标法,指针下标法,数

2024-12-19 15:48:58
推荐回答(4个)
回答1:

//满意么?
#include
using namespace std;

int main()
{
int ab[10] = {1,2,3,4,5,6,7,8,9,0};
int *p_ab = ab;
for(int i = 0; i < 10; i++) //数组名下标法
cout< cout< for(int i = 0; i < 10; i++) //指针下标法
cout<< p_ab[i];
cout< for(int i = 0; i < 10; i++) //数组名+整数指针法
cout<< *(ab+ i);
cout< for(int i = 0; i < 10; i++) //指针+整数指针法来显示该数组
cout<< *(p_ab + i);
cout< return 0;
}

回答2:

楼上有具体例子;
我来说一下该问题的本质;
首先,楼主要知道:指针就是地址;地址就是指针;
其次,数组名是该数组的首地址;毫无疑问,它也是个指针;而且相当于是个指针常量(即永远指向该数组,不可对它赋值);
所以,用数组名和用指针访问数组本质是一样的;
最后,也是最关键的楼主只要知道以下知识点,可以秒杀一切该类问题:
当我们用一个数组名+数字来访问某一块内存中的数据时,如:a[ 2 ];
编译器是这样编译的:a[ 2 ] == *( a+2 );
那么,楼主,你说这两种访问数组的方式本质上是不是一样的呢?

回答3:

int a[10] = {0};
int *p = a;
a[0] = 1;
*p = 2; //a[0] = 2
*(p + 1) = 3; //a[1] = 3

回答4:

这个书上有的。。。