1、字符数组初始化
int main01(int argc, char *argv[])
{
//1、字符数组初始化
//1.1 指定长度:会变成以0结尾的字符串,因为后边补了0 所以变成了字符串
char buf1[100] = {'a','b','c','d'}; //buf[4]-buf[99] 为0
//char buf2[2] = {'a','b','c','d'}; //如果初始化个数大于内存个数,编译错误
//1.2 不指定长度:编译器会自动帮程序员 求元素的个数
char buf3[] = {'a','b','c','d'}; //buf1是一个数组,不是一个以0结尾的字符串
printf("buf1:%s\n",buf1);
printf("buf1[88]:%s\n",buf1[88]);
printf("Hello World!\n");
system("pause");
return 0;
}
2、字符串初始化数组
int main02(int argc, char *argv[])
{
//2、字符串 初始化 字符数组
//字符数据的长度是5个字节,包括\0 作为字符串是4个字节
//buf3 作为数组 数组是一种数据类型 本质(固定内存块的别名)
char buf3[] = "abcd";
//buf3-sizeof()(操作符求内存空间的大小):5
printf("buf3-sizeof:%d\n",sizeof(buf3));
//buf3-strlen(函数求长度):4
printf("buf3-strlen:%d\n",strlen(buf3));
//测试块
{
char buf4[128]="abcdef";
printf("buf4[100]:%d\n",buf4[100]);
}
printf("Hello World!\n");
system("pause");
return 0;
}
3、通过数组下标和指针操作数组
int main(int argc, char *argv[])
{
//3、通过数组下标和指针操作字符串
int i = 0;
char *p = NULL;
char buf5[128]="abcdef";
//3.1 下标操作
for(i=0;i<strlen(buf5);i++)
{
printf("buf5[%d]:%c\n",i,buf5[i]);
}
printf("-------------------------------\n");
//3.2 指针操作
//重要 buf5:代表数组首元素的地址 &buf5:代表整个数组的地址
//buf5和&buf5代表的数组类型不一致
p = buf5;
for(i=0;i<strlen(buf5);i++)
{
printf("buf5[%d]:%c\n",i,*(p+i));
}
printf("-------------------------------\n");
for(i=0;i<strlen(buf5);i++)
{
printf("buf5[%d]:%c\n",i,p[i]);
}
printf("Hello World!\n");
system("pause");
return 0;
}