c++ 求教!定义一个数组和指针变量,利用指针变量给数组赋值后,分别利用数组名下标法,指针下标法,数
c++求教!定义一个数组和指针变量,利用指针变量给数组赋值后,分别利用数组名下标法,指针下标法,数组名+整数指针法,指针+整数指针法来显示该数组...
c++ 求教!定义一个数组和指针变量,利用指针变量给数组赋值后,分别利用数组名下标法,指针下标法,数组名+整数指针法,指针+整数指针法来显示该数组
展开
4个回答
展开全部
//满意么?
#include<iostream>
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<<ab[i];
cout<<endl;
for(int i = 0; i < 10; i++) //指针下标法
cout<< p_ab[i];
cout<<endl;
for(int i = 0; i < 10; i++) //数组名+整数指针法
cout<< *(ab+ i);
cout<<endl;
for(int i = 0; i < 10; i++) //指针+整数指针法来显示该数组
cout<< *(p_ab + i);
cout<<endl;
return 0;
}
#include<iostream>
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<<ab[i];
cout<<endl;
for(int i = 0; i < 10; i++) //指针下标法
cout<< p_ab[i];
cout<<endl;
for(int i = 0; i < 10; i++) //数组名+整数指针法
cout<< *(ab+ i);
cout<<endl;
for(int i = 0; i < 10; i++) //指针+整数指针法来显示该数组
cout<< *(p_ab + i);
cout<<endl;
return 0;
}
展开全部
楼上有具体例子;
我来说一下该问题的本质;
首先,楼主要知道:指针就是地址;地址就是指针;
其次,数组名是该数组的首地址;毫无疑问,它也是个指针;而且相当于是个指针常量(即永远指向该数组,不可对它赋值);
所以,用数组名和用指针访问数组本质是一样的;
最后,也是最关键的楼主只要知道以下知识点,可以秒杀一切该类问题:
当我们用一个数组名+数字来访问某一块内存中的数据时,如:a[ 2 ];
编译器是这样编译的:a[ 2 ] == *( a+2 );
那么,楼主,你说这两种访问数组的方式本质上是不是一样的呢?
我来说一下该问题的本质;
首先,楼主要知道:指针就是地址;地址就是指针;
其次,数组名是该数组的首地址;毫无疑问,它也是个指针;而且相当于是个指针常量(即永远指向该数组,不可对它赋值);
所以,用数组名和用指针访问数组本质是一样的;
最后,也是最关键的楼主只要知道以下知识点,可以秒杀一切该类问题:
当我们用一个数组名+数字来访问某一块内存中的数据时,如:a[ 2 ];
编译器是这样编译的:a[ 2 ] == *( a+2 );
那么,楼主,你说这两种访问数组的方式本质上是不是一样的呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int a[10] = {0};
int *p = a;
a[0] = 1;
*p = 2; //a[0] = 2
*(p + 1) = 3; //a[1] = 3
int *p = a;
a[0] = 1;
*p = 2; //a[0] = 2
*(p + 1) = 3; //a[1] = 3
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-03-13
展开全部
这个书上有的。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询