c二維陣列初始化為0的2種實現方式
阿新 • • 發佈:2019-01-26
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4 int main()
5 {
6 //char a[2][4] ;
7 char a[2][4] = {0} ;
8 char *b =a[0];
9 for (int i=0; i<8; i++)
10 {
11 printf("%d ", *(b+i));
12 }
13 printf("\n------------\n");
14 //memset(a,0x0, sizeof(a));
15
16 for (int i=0; i<8; i++)
19 }
20 }
2 #include <stdlib.h>
3 #include <string.h>
4 int main()
5 {
6 //char a[2][4] ;
7 char a[2][4] = {0} ;
8 char *b =a[0];
9 for (int i=0; i<8; i++)
10 {
11 printf("%d ", *(b+i));
12 }
13 printf("\n------------\n");
14 //memset(a,0x0, sizeof(a));
15
16 for (int i=0; i<8; i++)
17 {
//printf("%d", b[i]);
//printf("%d", a[i]); //這個是錯的輸出結果,原因是這個時候a的型別是二維指標,編譯器的解析不是我們想象的那個樣子!
//它輸出的是那一行的資料,太陽哦!
18 printf("%d ", *(b+i));19 }
20 }