能力值:
( LV4,RANK:40 )
|
-
-
2 楼
一个数组,只能存5个字符串,每个字符串只能4个字符
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
楼上的意思应该是把'\0'也算一个字符了吧?
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
#include <stdio.h> #include <stdlib.h> #include <string.h>
int main() { int i,j=0; char Buffer[5][5] = {"sYste","mk1t\0"}; for (i = 0;i<5;i++) { for (j = 0; j <5; j++) { printf("%c\n",Buffer[i][j]); } } return 0; }
你按照这个方式运行一下,你会发现每组可以存五个字符串,只要有初始化了以后,后面的就会被初始化为0
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
sYstemk1t
#include
#include
#include
int main()
{
int i,j=0;
char Buffer[5][5] = {"sYs ... int main() { int i,j=0; char Buffer[5][5] = {"s","g"}; for (i = 0;i<5;i++) { for (j = 0; j<5; j++) { printf("%d,%d,%c\n",i,j,Buffer[i][j]); }
} return 0; }
运行结果
0,0 = s 1,0 = g
其余都是0,怎么理解啊?
最后于 2020-7-17 18:36
被limee编辑
,原因:
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
char Buffer[5][5] = {"sYste","mk1t\0"};
这里是不是应该这样啊
char *Buffer[5][5] = {"sYste","mk1t"};
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
limee
sYstemk1t
#include
#include
#include
int main()
{
  ...
这个是编译器做的,如果你只初始化了一个值,那么后面的数据都会被填充成为0!
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
limee
char Buffer[5][5] = {"sYste","mk1t\0"};
这里是不是应该这样啊
char *Buffer[5][5] = {& ...
#include <stdio.h> #include <stdlib.h> #include <windows.h> int main(void) { int count = 5; char Buffer[5][5] = {"Hello","Hell\0","Hell\0","Hell\0","Hell\0"}; for (size_t i = 0; i < count; i++) { for (size_t j = 0; j < count; j++) { printf("%c\n",Buffer[i][j]); } } return 0;
}
你可以这么理解,Buffer[0][4]元素的内容你可以自己填写并且初始化,或者让编译器给你初始化为\0
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
limee
char Buffer[5][5] = {"sYste","mk1t\0"};
这里是不是应该这样啊
char *Buffer[5][5] = {& ...
或者这么理解吧! #include <stdio.h> #include <stdlib.h> #include <windows.h> int main(void) { int count = 5; char Buffer[5][5] = { "Hell\0", "Hell\0"}; for (size_t i = 0; i < count; i++) { for (size_t j = 0; j < count; j++) { printf("%c\n", Buffer[i][j]); }
}
return 0;
}
你看内存排列,前面我们主动初始化的值和后面没有被初始化的值!
|
|
|