二维数组初始化有关问题
二维数组初始化问题
这个打印出来结果,但是不是太明白,求指导哇
------解决方案--------------------
这样看就清晰了:b[i][j] (i为行,j为列)
j(列) 0 1 2 3 4 5 6 7 8 9....
i(行) 0 a p p l e 0 0 0 0 0 ..
1 l i s t e n 0 0 0 0 ..
2 h e l l o w o r l d 0 0 0 ..
3 c o m m u n i c a t i o n 0..
4 s p o r t 0 0
然后根据单位数组的下标法(从0开始)相信 LZ很快能理解了!
------解决方案--------------------
- C/C++ code
char b[20][20] = {"apple","listen","helloworld","communication","sport"}; printf("%c\n",b[1][3]); printf("%c\n",b[2][3]); printf("%c\n",b[3][3]);
这个打印出来结果,但是不是太明白,求指导哇
------解决方案--------------------
这样看就清晰了:b[i][j] (i为行,j为列)
j(列) 0 1 2 3 4 5 6 7 8 9....
i(行) 0 a p p l e 0 0 0 0 0 ..
1 l i s t e n 0 0 0 0 ..
2 h e l l o w o r l d 0 0 0 ..
3 c o m m u n i c a t i o n 0..
4 s p o r t 0 0
然后根据单位数组的下标法(从0开始)相信 LZ很快能理解了!
------解决方案--------------------
- C/C++ code
//这样看就清晰了:b[i][j] (i为行,j为列) 0 1 2 3 4 5 6 7 8 9 10 11 12 0 a p p l e \0 1 l i s t e n \0 2 h e l l o w o r l d \0 3 c o m m u n i c a t i o n \0 4 s p o r t \0
------解决方案--------------------
首先你要打印什么?打印一个字符?那就用%c参数表跟的是该%c的变量。例如:
printf("%c\n",b[1][3]);它打印的就是第二行(数组从0开始)第四列的元素(相当于一个变量),自然就打印t喽。
如果打印一个字符串,那就用%s,参数表跟的是这个要打印的字符串的首地址。例如
printf("%s\n",&b[1][3]); 这个字符串的首地址就是第二行第四列元素的地址,所以系统会从首元素(t)开始打印该列元素,即ten。注意不要忘了取地址符&。
明白了吗?
------解决方案--------------------
二维数组是一个长方形,
比如
char b[20][20] 就是20*20的正方形。
你需要一个一个复制,而且char类型是字符,不能直接给一个下标赋上一个apple的因为apple有5个字符,
你要b[0][0] = 'a',b[0][1] = 'p' 以此类推。