C语言学习零碎整理(5):关于char指针p和char s[]的区别
2008-08-30 16:02
471 查看
char *p="abc"作为一个常量,存放在空间的数据区,其内容不可改变(在win tc和tc3.0中可以改变,但在vc++6.0 中不可以。在ANSI C中,是不可以改变的)
char s[]="abc"存放在栈内,其内容可以改变
char *p="abc" ;//如果程序中企图通过指针p来修改字符串“abc”的内容,那该程序不可移植。
char s[]="abc" ;//可移植的写法。
指针p 指向常量字符串“wen”(位于静态存储区,内容为wen/0),常量字符串的内容是不可以被修改的。从语法上看,编译器并不觉得语句p[0]= ‘X’有什么不妥,但是该语句企图修改常量字符串的内容而导致运行错误。
相关文章推荐
- C语言学习零碎整理(5):关于char指针p和char s[]的区别
- C语言学习零碎整理(3):sprintf函数
- c语言学习零碎整理(7):数组名是指针吗?
- c语言学习零碎整理(8):看一个标准的库函数是怎么写的
- c语言学习零碎整理(11):怎样通过判断按键退出循环
- c语言学习零碎整理(9):传值调用,并不简单(特别是有指针的时候)
- c语言学习零碎整理(1):缓冲区
- C语言学习零碎整理(3):sprintf函数
- C语言学习零碎整理(4):堆和栈
- c语言学习零碎整理(2):结构体对齐问题
- c语言学习零碎整理(10):探讨scanf函数
- C语言学习零碎整理(4):堆和栈
- C语言学习零碎整理(6):怎样使用命令行参数
- c语言学习零碎整理(7):数组名是指针吗?(补)
- c语言学习零碎整理(2):结构体对齐问题
- c语言学习零碎整理(7):数组名是指针吗?
- c语言学习零碎整理(1):缓冲区
- 关于AngularJS学习整理---核心特性
- 学习笔记整理:POJO、JavaBean、DAO、EJB的概念的区别与联系
- 关于iOS打包上传到iTunesconnect的失败原因做了一些整理,有问题,可留言,相互学习