原文地址:http://www.cnblogs.com/Romi/archive/2012/01/10/2317898.html
指针数组:array of pointers,即用于存储指针的数组,也就是数组元素都是指针
数组指针:a pointer to an array,即指向数组的指针
还要注意的是他们用法的区别,下面举例说明。
int* a[4] 指针数组
表示:数组a中的元素都为int型指针
元素表示:*a[i] *(a[i])是一样的,因为[]优先级高于*
int (*a)[4] 数组指针
表示:指向数组a的指针
元素表示:(*a)[i]
注意:在实际应用中,对于指针数组,我们经常这样使用:
1
2
|
typedef int * pInt;
pInt a[4]; |
这跟上面指针数组定义所表达的意思是一样的,只不过采取了类型变换。
代码演示如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
#include <iostream> using namespace std;
int main()
{ int c[4]={1,2,3,4};
int *a[4]; //指针数组
int (*b)[4]; //数组指针
b=&c; //将数组c中元素赋给数组a for ( int i=0;i<4;i++)
{ a[i]=&c[i]; } //输出看下结果 cout<<*a[1]<<endl; //输出2就对
cout<<(*b)[2]<<endl; //输出3就对
return 0;
} |
注意:定义了数组指针,该指针指向这个数组的首地址,必须给指针指定一个地址,容易犯的错得就是,不给b地址,直接用(*b)[i]=c[i]给数组b中元素赋值,这时数组指针不知道指向哪里,调试时可能没错,但运行时肯定出现问题,使用指针时要注意这个问题。但为什么a就不用给他地址呢,a的元素是指针,实际上for循环内已经给数组a中元素指定地址了。但若在for循环内写*a[i]=c[i],这同样会出问题。总之一句话,定义了指针一定要知道指针指向哪里,不然要悲剧。
相关推荐
指针数组和数组指针的区别 数组指针(也称行指针) 定义 int (*p)[n]; ()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型...
彻底理解指针,指针数组和数组指针,指针函数和函数指针.doc
指针进阶之指针数组和数组指针
指针数组和数组指针。 int* intPtrArray[5]; // 创建一个包含 5 个整数指针的指针数组 int a = 10, b = 20, c = 30, d = 40, e = 50; intPtrArray[0] = &a; // 第一个元素指向整数变量 a intPtrArray[1] = &b; // ...
指针数组: 指针数组是一个数组,其中的每个元素都是一个指针。指针数组可以用来存储多个指向不同对象的指针。定义指针数组的方式是在类型标识符后面加上一个星号()和一个数组大小的方括号[]。例如,int ptr_array[5...
数组,指针.对于刚刚接触程序的童鞋们来说,是一个难点,也是一个重点.为了提高大家这方面的水平.这里提供一份资料.
识别const到底是修饰指针还是指针所指的对象,还有一个较为简便的方法,也就是沿着*号划一条线:
单从字面上来看似乎很难分清它们是什么,我们先来看看指针数组和数组指针的定义。 指针数组:数组类型 *数组名[数组长度]; 例:int *parr[5]; 数组指针:类型名 (*指针名)[数组长度]; 例:int (*parr)[5]; 现在我们...
本文是针对C语言而写的指针数组和数组指针的区别,希望能给予见解
实验与指导-数组指针字符串 指针与数组区别
此文档详细描述了指针数组和数组指针的联系和区别,不看会遗憾的。
用于比较指针数组和数组指针实现算法的差异,利用函数返回指针实现。 可作为研究C语言指针使用的范例程序。 有源代码和实现结果图。
为什么会出现指针和数组指针对数组元素调用的方式不同呢? 答:*p是一个指针变量,p指向的其实是a[0]或a[0][0]; 而(*p)[2]是一个数组指针,p指向的其实是a[0],a[1]或a[0][0],a[0][1]这样的形式; 也就是说*p中的p...
第9章 指针和数组——指针数组的应用:命令行参数C语言程序设计第9章 指针和数组命令行参数什么是命令行参数(Command Line Arguments)?GU
第9章 指针和数组—指针数组及其在字符串处理中的应用C语言程序设计第9章 指针和数组问题:存储一个字符串集合的最佳方式是什么?二维的字符数组问题的提出105C语
主要介绍了C++指针数组、数组指针、数组名及二维数组技巧汇总,对于深入理解C++数组与指针来说非常重要,需要的朋友可以参考下
一个关于如何定义c++语言中的数组类型和数组指针的教学源码。
指针可以用于数组、或作为函数的参数,用来访问内存和对内存的操作,指针的使用使得C++很高效,但是指针也非常危险,使用不当会带来比较严重的问题。 1、指针 程序中所有的变量和常量都存在一个内存地址中,当然,...