c语言中,指针数组和行指针有什么区别啊
请你根据自己的理解帮我解答吧,不要复制。我现在正自学,这个问题一直想不通,而且也不会运用。能不能给我举个简单的例子...
请你根据自己的理解帮我解答吧,不要复制。我现在正自学,这个问题一直想不通,而且也不会运用。能不能给我举个简单的例子
展开
7个回答
展开全部
指针数组
一个数组的成员都是指针它就是指针数组了
至于指向的是什么东东要在定义时就说好了的
行指针
二维数组用的东西
比如
a[5][5]
a[0]就是一个行指针
也是a[0]这一行的这个一维数组的首地址
也就是说a[0]的地址和a[0][0]的地址还有a是同一个地址
a[0]就是{a[0][0],a[0][1],a[0][2],a[0][3],a[0][4]}这个数组的首地址
a[0]+1就是指向下一行a[1]了
如果一个指针数组(一维的)
它的成员每一个指针都指向一个一维数组
那么他们都可以理解为行指针(JAVA里的好像就莫的二维数组,要用多维数组好像就要这么构造)
谭浩强老先生对于二维数组的阐述还是很精辟的
仔细看看
想明白二维数组这些个问题基本上就都能想出来了
一个数组的成员都是指针它就是指针数组了
至于指向的是什么东东要在定义时就说好了的
行指针
二维数组用的东西
比如
a[5][5]
a[0]就是一个行指针
也是a[0]这一行的这个一维数组的首地址
也就是说a[0]的地址和a[0][0]的地址还有a是同一个地址
a[0]就是{a[0][0],a[0][1],a[0][2],a[0][3],a[0][4]}这个数组的首地址
a[0]+1就是指向下一行a[1]了
如果一个指针数组(一维的)
它的成员每一个指针都指向一个一维数组
那么他们都可以理解为行指针(JAVA里的好像就莫的二维数组,要用多维数组好像就要这么构造)
谭浩强老先生对于二维数组的阐述还是很精辟的
仔细看看
想明白二维数组这些个问题基本上就都能想出来了
展开全部
行指针是什么?这么久了没听说过。
指针数组。
int *p4[4];可以指向4个整型变量的地址或4个整型变量数组。
int a1,a2,a3,a4,b1[4],b2[2],b3[4],b4[5]; p=&a1;p=&a2;p=&a3;p=&a4;
p=b1;p=b2;p=b3;p=b4;都对。
指针。int *p;可以指向一个整型变量的地址或一个整型变量数组。int a,b[4]; p=&a,p=b;都对。
指针数组。
int *p4[4];可以指向4个整型变量的地址或4个整型变量数组。
int a1,a2,a3,a4,b1[4],b2[2],b3[4],b4[5]; p=&a1;p=&a2;p=&a3;p=&a4;
p=b1;p=b2;p=b3;p=b4;都对。
指针。int *p;可以指向一个整型变量的地址或一个整型变量数组。int a,b[4]; p=&a,p=b;都对。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我机子觉得没有什么区别吧,其实指针数组每一行就是一个数组,而指针数组的名字就相当于指向第一行的开始,通过名字+1就可以访问下一行,这和你说的行指针的作用相当
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
指针数组表示一个数组里存放的元素都为指针;行指针即数组指针表示的是一个指针,它指向该数组。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.指针,数组都是地址.
2.指针一般是常量,数组名是常量.所以你可以这样给指针赋值:
char *pString; pString = "Hello";
但是你不能这样给数组赋值:
char szString[100];
szString = "Hello";
而是:
srtcpy(szString, "Hello");
你还可以这样赋值:
pString = szString; //pString指向了szString
但你不能:
szString = pString; //szString常量
现在就想到这么多,想到在补充.
应用嘛:
效率是指针和数组最好的体现:
我们知道,我们给形参传值有2种,值传,地址传(我一向懒得记什么专业名称,不知道是不是这样说,但是你应该明白),在值传的时候,是把实参的值给形参,地址就是传地址.
这样问题就出现了:
当我们有一个非常大结构的时候,值传是非常慢,但是地址传的话,就是4个字节,是快了几倍.
而且指针可以实现访问"自己函数"以外的变量.
2.指针一般是常量,数组名是常量.所以你可以这样给指针赋值:
char *pString; pString = "Hello";
但是你不能这样给数组赋值:
char szString[100];
szString = "Hello";
而是:
srtcpy(szString, "Hello");
你还可以这样赋值:
pString = szString; //pString指向了szString
但你不能:
szString = pString; //szString常量
现在就想到这么多,想到在补充.
应用嘛:
效率是指针和数组最好的体现:
我们知道,我们给形参传值有2种,值传,地址传(我一向懒得记什么专业名称,不知道是不是这样说,但是你应该明白),在值传的时候,是把实参的值给形参,地址就是传地址.
这样问题就出现了:
当我们有一个非常大结构的时候,值传是非常慢,但是地址传的话,就是4个字节,是快了几倍.
而且指针可以实现访问"自己函数"以外的变量.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
指针数组:
归根结底它还是一个数组,只不过此数组的成员都是指针
行指针:
它是一个指向(多维)数组的指针.或者说就是把多维数组的N行的首地址赋给了一个先前已经定义过的指针.
本人觉得这是一个不难的问题,你只要回过头再看几遍书一定可以理解,包括你以后可能遇到的一些问题.因为本人也是自学,看不懂的地方就多看几遍,其中之体会 怎一个"爽"字了得!
归根结底它还是一个数组,只不过此数组的成员都是指针
行指针:
它是一个指向(多维)数组的指针.或者说就是把多维数组的N行的首地址赋给了一个先前已经定义过的指针.
本人觉得这是一个不难的问题,你只要回过头再看几遍书一定可以理解,包括你以后可能遇到的一些问题.因为本人也是自学,看不懂的地方就多看几遍,其中之体会 怎一个"爽"字了得!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询