c语言中,例如一个c语言二维数组赋值a[3][4],则a与a[0]代表的意思一样吗?a与*a呢?我在书上看它

C语言中 定义一个二维数组 int a[5][5] 然后a[0][0]+1 表示什么 是表示a[1] 还是表示a[0][1]_百度知道
C语言中 定义一个二维数组 int a[5][5] 然后a[0][0]+1 表示什么 是表示a[1] 还是表示a[0][1]
提问者采纳
这个就是a[0][0]里面的内容加1
哦 如果是数组元素就是一个值了吧? 那请问下, 如果是a[0]+1 呢 那表示什么呢?
那就是a[0][1]罗
其他类似问题
为您推荐:
二维数组的相关知识
其他1条回答
只能表示一个值吧。
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁C语言题目:经过 int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}定义之后,元素a[1][0]的值是_____.A.2 B.5 C.10 D.12
B int a[0][]= {1,2,3,4}int a[1][]= {5,6,7,8}int a[2][]= {9,10,11,12}所以a[1][0] = 5
为您推荐:
其他类似问题
扫描下载二维码C指针问题迷惑中,(*p)[4]和*p到底有什么区别?自学,谭浩强的C语言书,多维数 组指针变量,设有一个二维数组a[3][4],下面是书中原话:“(2)指向由m个元素组成的一维数组的指针变量.上例的指针变量p是指向整型变量的,p+1所指向的元素是p所指向的下一元素.可以改用另一方法,使p不是指向整型变量,而是指向一个包含m个元素的一维数组.这时,如果p先指向a[0](即p=&a[0]),则p+1不是指向a[0][1],而是指向a[1],p的增值以一维数组的长度为单位,见图10.28.”————看到这里,似乎说的是p指向的是二维数组a[3][4]的每一行的第一个位置,书中前面举出了一个排长、班长、列兵的例子,那么这里p应该是充当了排长的角色而指向的是班长吗?那么下面又给出了这样一个例子:main(){int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};int (*p)[4],i,j;p=a;scanf("i=%d,j=%d\n",i,j,*(*(p+i)+j));}运行情况如下:i=1,j=2 /*回车*/a[1,2]=13/*程序第3行 int (*p)[4] 表示p是一个指针变量,它指向包含4个元素的一维数组.*/————一个问题就是,为什么要用(*p)[4]这种方式呢?用一个*p,依次指一行中的每一元素,(*p)[4]到底是什么意思?一开始认为它是一个数组,但书上意思却又说它不是.以上说得比较多,也不知道大家看明白了没有,总之是感觉很迷惑,还望各位老师及师兄能一一给予详细的解答.
迷醉mtXV44
(*p)[4] p的含义是一个指向包含四个元素的数组的指针*p
p的含义是一个指向数的指针指向数和指向数组是不一样的概念.为什么要用(*p)[4]这种方式呢?用一个*p,依次指一行中的每一元素,不是一样可以解决问题吗?对*p,p此时相当于一个一维数组,但是对(*q)[4],q相当于一个二维数组,第二维的大小是4.p[x]是一个数q[x]却相当于一个一维数组,该一维数组的起始地址是q+x*4所以加入p,q指向同一个地址,区别就是p[0]==q[0][0],p[4]==q[1][0].此时q可理解为指针的指针,q[x]是指针.所以q[x]与p是同种的指针.所以q的引用会更清楚一点,它可将一维数组用二维的方式来引用.就说这么多吧,睡觉了,希望有帮助.自学C的时候,我指针这一章弄晕了,最后搞得我在那一周看到C教材就恶心.一周没看过书.
为您推荐:
其他类似问题
扫描下载二维码用C语言在主函数中定义和初始化一个二维数组a[3][4]和一个指针数组,采用指针数组去访问数组元素a[2][4];_百度知道
用C语言在主函数中定义和初始化一个二维数组a[3][4]和一个指针数组,采用指针数组去访问数组元素a[2][4];
提问者采纳
确定题目是&采用数组指针去访问数组元素&采用指针数组去访问数组元素&,而不是&quot
#include&stdio.h&int main(){
int a[3][4],i,j,
int *p[sizeof(a)/sizeof(a[0][0])];
for(count=i=0;i&sizeof(a)/sizeof(a[0]);++i)
for(j=0;j&sizeof(a[0])/sizeof(a[0][0]);++j)
a[i][j]=count++;
p[i*sizeof(a[0])/sizeof(a[0][0])+j]=&a[i][j];
printf(&%d\n&,*p[2*sizeof(a[0])/sizeof(a[0][0])+3]);//a[2][4]已越界
return 0;}
提问者评价
来自团队:
其他类似问题
为您推荐:
其他1条回答
%d&quotint a[3][4];;printf(&%d;int *p[4],*(*(p+2)+4);p=a,p[2][4])
??? 只表示一个吧
让你检验一下*(*(p+2)+4)和p[2][4]是不是相等,这样加深印象
指针数组的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁C语言程序设计 定义一个二维数组a[3][4],要求输入12个数每一行从小到大排列,每一列从小到大排列例如 1 2 3 45 6 7 89 10 11 12
搞那么复杂干嘛,就是一位数组排序,让后放到二位数组里面,一位数组排序网上一大堆,搜下吧
亲,我就只要答案,不是方法。即能解决这个问题的程序代码。加油呀!
#incluevoid bubble_sort(int *a, int n)
for (int i = 0; i
if (*p2 < *p1) // 升序
*p1 = *p2;
int main(){
int a[12];
int b[3][4];
int i=0,j=0,k=0;
printf("input 12 num:");
while(i<12)
scanf("%d",&a[i]);
bubble_sort(a,12);
for(i=0;i<3;i++)
for(j=0;j<4;j++)
b[i][j]=a[k];
printf("%d\t",b[i][j]);
printf("\n");
虽然编码连接时有错误不让运行,但还是谢谢你了。
为您推荐:
其他类似问题
扫描下载二维码

我要回帖

更多关于 c语言二维数组指针 的文章

 

随机推荐