1.使用场合
* 一维字符数组中存放一个字符串,比如一个名字char name[20] = "mj"
* 如果要存储多个字符串,比如一个班所有学生的名字,则需要二维字符数组,char names[15][20]可以存放15个学生的姓名(假设姓名不超过20字符)
* 如果要存储两个班的学生姓名,那么可以用三维字符数组char names[2][15][20]
2.初始化
char names[2][10] = { {'J','a','y','\0'}, {'J','i','m','\0'} };
char names2[2][10] = { {"Jay"}, {"Jim"} };
char names3[2][10] = { "Jay", "Jim" };
3.代码
1#include <stdio.h>23intmain()4{5//char name[] = {'i', 't', 'c', 'H', 's', 't', '\0'};6charname[] ="itcast";78name[3] ='H';910/*11int size = sizeof(name);1213PRintf("%d\n", size);14*/1516printf("我在%s上课\n", name);1718return0;19}2021//字符串的一个初始化22voidtest2()23{24//\0的ASCII码值是025//都是字符串26charname[8] ="it";27charname2[8] = {'i','t','\0'};28charname3[8] = {'i','t',0};29charname4[8] = {'i','t'};3031//不算是一个字符串(只能说是一个字符数组)32charname5[] = {'i','t'};33}3435/*36void test()37{38// 'a' 'b' 'A'39// "jack" == 'j' + 'a' + 'c' + 'k' + '\0'4041char name[10] = "jack888\n";4243// 把数组传入,仅仅是个警告44printf(name);4546printf(name);4748printf(name);4950printf("57843578435");51}*/
注意
1#include <stdio.h>23/*4\0的作用51.字符串结束的标记62.printf("%s", name2);7会从name2这个地址开始输出字符,直到遇到\0为止8*/910intmain()11{12charname[] ="itc\0ast";1314charname2[] = {'o','k'};1516//printf("%s\n", name2);1718printf("%s\n", &name2[1]);1920return0;21}