学过C语言的都知道,字符串是一个很特别的存在。下面我们就从初始化和打印来了解下。
首先字符串是以ASIC码的形式存放于内存中的,而且字符串初始化是以数组或者指针的形式进行的。
首先对一个字符串进行初始化,可以参考如下代码:
void main()
{
char str[]="abcdefg";
char *str="abcdefg";
}
我们可以看下上面两种字符串的打印方式:
首先是第一种,单个打印字符串中某个元素,或者打印数组中的所有内容,代码如下
void main()
{
char str[]="abcdefg";
printf("str[0]=%c\n",str[0]);
printf("str[0]=%d\n",str[0]);
printf("&str[0]=0x%x\n",&str[0]);
printf("&str=0x%x\n",&str);
for(int i=0;i<sizeof(str)/sizeof(str[0]);i++)
{
printf("%c",str[i]);
}
}
执行结果如下:
可以看到%c是打印单个字符,%d则把该字符对应的ASIC码打印出来,如果需要打印地址则在该数组元素前面加上取地址符&,而且字符串数组的地址即第0个数组的地址;
第二种,单个打印字符串中某个元素,或者打印数组中的所有内容,代码如下
void main()
{ char *str="abcdefg";
printf("%s\n",str);
printf("%c\n",*(str+1));
printf("str=0x%x\n",str);
printf("(str+0)=0x%x\n",(str+0));
}
执行结果如下:
可以看到打印方式为%s,,即可把该字符串全部进行打印,如果要打印某一位的字符串只需要取该地址,并且加上读取该地址的内容*即可。