一、字符串指针、字符数组
1.
字符串指针:字符串指针变量本身是一个变量,用于存放字符串的首地址。而字符串本身是存放在以该首地址为首的一块连续的内存空间中并以‘\0’作为串的结束。
char *ps="C Language";
可以写为:
char *ps; #ps字符串指针,是指针,是一个变量,
ps="C Language";
#ps为字符串的首地址,利用ps++可遍历字符串,字符串存储在以ps为开始地址的地段连续的内存空间中,并以‘\0‘作为字符串的结束。
2.
字符数组:字符数组是由于若干个数组元素组成的,它可用来存放整个字符串。(即用字符数组来存放字符串)。
在c语言中,将字符串作为字符数组来处理。(c++中不是)
字符数组初始化的方法:
1). 可以用字符串常量来初始化字符数组:char str[]={"Iamhappy"};
可以省略花括号
char
str[]="Iamhappy"; #系统自动加入‘\0’
注意:上述这种字符数组的整体赋值只能在字符数组初始化时使用,不能用于字符数组的赋值,字符数组的赋值只能对其元素一一赋值。
下面的赋值方法是错误的:
char str[20];
str="Iamhappy";
对字符数组的各元素逐个赋值。
charstr[10]={‘I‘,‘‘,‘a‘,‘m‘,‘‘,‘h’,‘a‘,‘p‘,‘p‘,‘y‘};
在C语言中,可以用两种方法表示和存放字符串:
(1)用字符数组存放一个字符串
charstr[]="IloveChina";
(2)用字符指针指向一个字符串
char*str="IloveChina";
两种表示方式的字符串输出都用:printf(“%s\n”, str);
%s表示输出一个字符串,给出字符指针变量名str(对于第一种表示方法,字符数组名即是字符数组的首地址,与第二种中的指针意义是一致的),则系统先输出它所指向的一个字符数据,然后自动使str自动加1,使之指向下一个字符...,如此,直到遇到字符串结束标识符"\0"。