[求助]指针如何给二维数组赋值
请教int *p,a[5],a[3][4];
指针变量给一维数组赋值,可以写成p=a;或则p=&a[0];
如果是给二维数组赋值,应该怎么写???
----------------解决方案--------------------------------------------------------
p=&a[0];
----------------解决方案--------------------------------------------------------
晕不对错了 应该是*p=a[0]指向a[0][0]
----------------解决方案--------------------------------------------------------
二维数组赋值和一维一样???
int a[3][4]={{1,2,3,4},{11,12,13,14},{21,22,23,24}},*p;
如果要赋值这个二维数组
应该是这样吗:
p=&a[0];(可不可以p=a;)
*(p+5)=a[2][1]对不对?
请教斑竹!!!
----------------解决方案--------------------------------------------------------
p=a[0];
不 要 +&号
p=a;是错误的
[此贴子已经被作者于2007-2-27 17:04:04编辑过]
----------------解决方案--------------------------------------------------------
*(p+5)==a[1][1]
对
我晕 今天晕头转向的
[此贴子已经被作者于2007-2-27 17:11:23编辑过]
----------------解决方案--------------------------------------------------------
哦,一维数组赋值的时候,需要p=&a[0]
二维数组就直接,p=a[0]就可以了吧
int a[3][4]={{1,2,3,4},{11,12,13,14},{21,22,23,24}},*p;
p=a[0];
然后就能指针地址运算了
比如 (p+5)就是指向a[1][1]吧
斑竹,想请教下,如何可以在屏幕中输入指针指向的数据元素
比如:
printf("%x(H)",(p+5)); /*显示的是地址*/
printf("%d",*(p+5); /*显示的是值*/
如何在屏幕中看到(p+5)指针变量指向a[1][1],在屏幕上显示a[1][1]
[此贴子已经被作者于2007-2-27 17:16:02编辑过]
----------------解决方案--------------------------------------------------------
*(p+5)就是指向a[1][0]吧
指向a[1][1]
----------------解决方案--------------------------------------------------------
以下是引用lhj2005在2007-2-27 16:54:32的发言:
二维数组赋值和一维一样???
int a[3][4]={{1,2,3,4},{11,12,13,14},{21,22,23,24}},*p;
如果要赋值这个二维数组
应该是这样吗:
p=&a[0];(可不可以p=a;)
*(p+5)=a[2][1]对不对?
请教斑竹!!!
二维数组赋值和一维一样???
int a[3][4]={{1,2,3,4},{11,12,13,14},{21,22,23,24}},*p;
如果要赋值这个二维数组
应该是这样吗:
p=&a[0];(可不可以p=a;)
*(p+5)=a[2][1]对不对?
请教斑竹!!!
二维数组本质上跟一维数组上一样的,因为它也是按一维数组存放的
p=a是可以的 a就是数组的起始地址
*(p+5)=a[2][1]对
不过+1表示下一个存储单元
[此贴子已经被作者于2007-2-27 17:14:46编辑过]
----------------解决方案--------------------------------------------------------
#include"stdio.h"
main()
{
int a[3][4]={{1,2,3,4},{11,12,13,14},{21,22,23,24}},*p;
p=a[0];
printf("%d,%d",*(p+5),a[1][1]);
}
你多拿这个程序试试
----------------解决方案--------------------------------------------------------