在c中,字符串以数组的形式存放。
直接定义数组存放:
- char a[] = "hello c programe!";
也可以用指针指向字符数组首地址的形式存放:
- char *p = "hello c programe!";
实际操作起来,这两种方式各有优缺点。
在这里我想说的是,第二版的《C程序设计》(谭浩强)中,举的一个例子似乎有问题。第236页,例程10.20的第二种解决方式。当使用指向数组首地址的指针来确定字符串时,第二次读取字符串,为了确定指针的初始值,似乎有些困难。看下面的代码:
- main(){
- char *p1 = "hello c programe!";
- int sp = p1;
- printf("%s",p1);
- p1 = sp;
- printf("%s",p1);
- }