char *和char[]的区别,困扰很长时间了,总结下
2013-09-11 20:29
218 查看
char c1[] = "hello";// char *c2 = "hello";//
区别1:
c1是一个局部数组,c2是一个全局数组。
局部数组c1是局部变量,他对应的是内存中的栈;
"hello"为字符串常量,放在只读的数据区域(区别普通的全局变量保存在静态数据区,静态数据区区域能改变变量值),
所以c2指向全局区域内存。
区别2:
c1的值可以改变;*c1 = 'x';//ok
c2的值不能变;*c2 = 'x';//error
区别3:
c1只是"hello"的一个拷贝,保存在栈中;
c2指向的只读数据区域的指针,不是拷贝。
相关文章推荐
- char *和char[]的区别,困扰很长时间了,总结下
- 微软笔试总结之C++中char * 和 char []的区别,以及堆、栈
- 深入分析C++中char * 和char []的区别
- c++ 字符类型总结区别wchar_t,char,WCHAR(转)
- c++中char * 和 char []的区别
- 浅谈c++ 字符类型总结区别wchar_t,char,WCHAR
- [转载]char * 和char []的区别---之第二篇
- C语言中char * 和 char []的区别
- char * 与 char[] 区别
- 深入分析C++中char * 和char []的区别 [转]
- 深入 理解char * ,char ** ,char a[ ] ,char *a[] 的区别
- [转]深入分析C++中char * 和char []的区别
- c++中char *和char []的区别
- char *和char [] 区别
- c++中char * 和 char []的区别
- c++中char * 和 char []的区别
- 深入分析C++中char * 和char []的区别
- char [] 和char * 之间有什么区别?
- char * 与 char[] 的区别
- 深入分析 char * 和char []的区别 堆栈