www.bxhh.net > C语言,三维数组

C语言,三维数组

先说二维,可以这么理解: int n[3]有3个int 那么, int m[5][3]有5个int[3] 赋值时: n[1]=3把3给1号 m[4]={5,9,4}m[4]是个int[3]类型,这么赋值,也就是这么赋值: m[4]的[0]是5:m[4][0]=5 m[4][1]=9 m[4][2]=4 懂了吗?三维甚至更多维大同小...

int limit[4][5][2]={{3,8}, {4,9}, {5,0}, {1,6}, {2,7}, {2,7}, {3,8}, {4,9}, {5,0}, {1,6}, {1,6}, {2,7}, {3,8}, {4,9}, {5,0}, {1,6}, {2,7}, {3,8}, {4,9}, {5,0}}; 你这样定义是:int limit[20][2]。int limit[4][5][2]应该是 int limit...

要数组指定大小 int a[x][y][z],x可以省略,y和z不能省略

例如:int a[3][2][4] = { { {1,1,1,1}, {1,1,1,1} }, { {1,1,1,1}, {1,1,1,1} }, { {1,1,1,1}, { 1,1,1,1} } };

memset(void*p,int ch,size_t n)函数功能:以指针p指向的内存空间为起始,将其后n个字节的空间全部赋值为ch.该函数头文件为或 使用该函数初始化数组为0 #include#includevoid main(){ int a[2][3][4]; a[1][2][3]=1; memset(a,0x00,sizeof(a)); /*...

这一大段是你手工输入的吗,输这么多具体数字,也没弄清楚你想做什么

printf("%d",((int*)a)[i]); 或者 printf("%d",*((int*)a+i)); 还有你的数组初始化不对,应该这样 int a[2][2][3]={{{1,2,3},{4,5,6}},{{8,6,5},{12,4,5}}};

你的数组a其实仍然是二维数组,因为你给的值显然是一个二维数组的值即 1,2,3 3,2,1 2,5,6 你并没有真正做一个三维数组,所以赋给二维数组完全没问题,数组b的值仍然是像上面那样的形式

a代表一个起始地址,a[0]和a[0][0]也是,这个三个地址重合 三者的区别在于: 后面两个理解方便 a[i]代表二维数组的起始地址,a[i][j]代表的是一维数组的起始地址 由1和2可知a[i+1]的步长一个二维数组的存储长度,a[i][j+1]代表的步长是一维数组...

比如三维数组a[5][4][2]; 可以这样引用 a[0][0][0], a[0][0][1], a[4][3][1],等。

网站地图

All rights reserved Powered by www.bxhh.net

copyright ©right 2010-2021。
www.bxhh.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com