指向字符串常量的指针变量
2015-08-11 18:06
906 查看
#include<stdio.h> int main() { char a[]="good luck"; printf("%s",a);//这里的a与下面的p一样,都表示字符串的搜地址 return 0; } /*#include<stdio.h> int main() { char *p="good luck"; printf("%s",p);系统先输出p所指向的字符'g',然后输出p+1所指向字符,直到遇到'\0'为止 return 0; } */ /*#include<stdio.h> int main() { char *p="good luck"; for(;*p!='\0';p++) //就是上面讲的实质,一个是%s,一个是%c,前者过程忽略,后者过程精细 printf("%c",*p); return 0; }*/ /*#include<stdio.h> int main() { char a[100]; int i; gets(a); for(i=3;a[i]!='\0';i++) printf("%c",a[i]); return 0; }*/ /*#include<stdio.h> int main() { char a[100],*p; int n=3; gets(a); p=a;//字符串a的首地址赋给了p p=p+n;//只能是p去加n,若换成a,则不行,应为a代表&a[0],是个常量 printf("%s",p); return 0; }*/ 字符数组与字符型指针变量有以下几点异同: (1)字符数组由若干个元素组成,每个元素就是一个字符;而在用字符型指针变量处理字符串时,存放的是地址,绝不是整个字符串放到字符型指针变量中 (2)字符型数组名代表数组的起始地址,是常量,是不能赋值的;而字符型指针变量是变量,必须赋值才可以使用,其值是可以改变的,使用灵活。例如: char str[14],*ps; str="this is a string array"; //错误,数组名str是地址常量 ps="this is a string array" //正确,将字符串常量的首地址赋给ps
相关文章推荐
- 使用MATLAB BNT贝叶斯工具箱,进行Gibbs Sampling之前需要做的编译工作
- C#基础知识
- hdu 5379 Mahjong tree dfs
- 【读书笔记】iOS-开发技巧-三种收起键盘的方法
- Cool Android Apis 整理(一)
- 计算从A地出发到各个地方的路径及距离
- 关于mac book 的启动选项
- kernel_task high cpu usage
- Android解惑 - 为什么要用Fragment.setArguments(Bundle bundle)来传递参数
- How Android Draws Views(Android 视图绘制机制)
- Android开发中遇到的exception
- 最简单的android annotation demo
- BZOJ 4216 Pig 分块乱搞
- HTTP协议学习,post于get;用Fiddler测试请求
- W3C标准
- 【读书笔记】iOS-开发技巧-三种收起键盘的方法
- Corel VideoStudio Pro X7(会声会影)
- 使用Chef自动化部署框架的好处
- iOS 打包静态库
- Hdu 1875 畅通工程再续【最小生成树】