1.3 C语言中访问字符串的两种方式
计算机访问一个字符串通常采用两种主要方式:一种是初始化一个字符数组,一种是初始化一个字符指针 。
例1 定义一个字符数组,对它初始化,然后输出存放在数组中的字符串。
#include<stdio.h>
void main()
{ char a[]=“huaishi!”;
printf(“%s\n”,a);
}
输出的结果就是“huaishi”这个字符串。
例2 定义一个字符指针,对它初始化,用字符指针指向字符串中的字符。
#include<stdio.h>
void main()
{ char *a=“huaishi!”;
printf(“%s\n”,a);
}
输出的结果就是“huaishi”这个字符串。
这两者都能够实现字符串存储和运算,但有不同之处。第一是元素构成上,字符数组由若干个元素组成,每个元素放一个字符;而字符指针变量中存放的是地址(字符串/字符数组的首地址),绝不是将字符串放到字符指针变量中(是字符串首地址)。第二是在赋值方式上,对字符数组只能对各个元素赋值,可以对字符指针变量赋值,但是不能对数组名赋值。第三是在初始化方式上,数组要在定义时整体初始化。第四是在内存地址分配上,一个已经被定义的字符数组有确定的内存地址;而定义一个字符指针变量时,它并未指向某个确定的字符数据,并且可以多次赋值。