指向字符数组的指针
2008-09-15 23:33
218 查看
在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);
}
这样做在编译时,会得到警告,不过可以很方便地寻回原来指针指向的地址。不然的话,有什么更好的办法寻回指针原来指向的地址呢?
直接定义数组存放:
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);
}
这样做在编译时,会得到警告,不过可以很方便地寻回原来指针指向的地址。不然的话,有什么更好的办法寻回指针原来指向的地址呢?
相关文章推荐
- 指针指向的字符数组长度的获取方法
- 指向字符数组的指针与指向整型数组的指针
- 挑战30天C++入门极限-C/C++中字符指针数组及指向指针的指针的含义
- 一个int型指针指向一个字符数组
- 字符数组与指向字符串的指针的区别
- 字符串string 字符数组与指向字符串的指针pchar的区别与联系
- [转]c/c++中的字符指针数组,指向指针的指针的含义
- 指向字符串的指针与字符数组
- 指向字符数组的指针 char*p="abc"和char p[]="abc"的区别。
- C/C++中字符指针数组及指向指针的指针的含义
- C字符串、字符数组、指针数组、指向数组的指针 彻底研究
- 字符、字符数组(字符串)与指向字符串的指针
- 定义字符指针数组分别指向5个字符串常量,从小到大输出字符串内容
- 函数内 声明一个字符数组和一个指向字符串数组的指针 区别
- C程序设计语言- 指针与数组-4.2----字符指针与函数、指针数组以及指向指针的指针、指针数组的初始化
- 字符指针指向的字符串复制到字符数组里
- 指向字符串的指针 和 字符数组的区别
- c/c++中的字符指针数组,指向指针的指针的含义
- 指向字符的指针数组来存储一个字符串列表
- C/C++中字符指针数组及指向指针的指针的含义