字符数组与字符指针的区别以及字符串常量的修改
来源:互联网 发布:网络流行文体 编辑:程序博客网 时间:2024/06/02 10:00
区别 : 字符数组是在内存中开了一段空间用来存放 "hello zhao!”如下所示:
hello zhao!\0 string是数组名,其实一个常量(或标号),其不占用内存空间,所以只开了一段空间,就是这个字符串占得空间。string其值就是这个字符数组的第一个元素的地址。相当于一个标号,它不能被赋值,也不能参与自增自减运算。而字符指针是个变量,其可以被赋值, char *str="hello zhao!" 在内存中定义是开了两段空间的,一是因为string是个变量,所以其本身也占用一个字节的内存,而这一个字节中存放的是字符串常量"hello zhao!"的地址;二是另一段是字符串常量"hello zhao!"所占了一段空间。如下所示
string这个变量其值位字符常量首地址............hello zhao!\0注意:a、string="hello zhao!";是不行的,string数组名不能被赋值。
b、char *str="hello zhao!" 这种字符指针指向的是字符常量,"hello zhao!"是 字符常量,是不可改变的,所以不能通过字符指针修改这个字符串的内容。
c、char *a, str[10]; a = str; 这样子 当字符指针指向一个字符数组的时候,可以通过字符指针修改str[10]中的变量
d、字符数组在定义和编译时系统会自动分配内存单元,而字符指针变量定义后最好将其初始化,否则字符指针变量的值会指向一个不确定的内存段,将会破坏程序。
如:char *a;
scanf( "%s", a );这种方法是很危险的,应该这样:
char *a, str[10];
a = str;
scanf( "%s", a );这样字符指针就指向了一个确定的内存段
e、字符指针的两种初始化方法如上蓝色标出了。
- 字符数组与字符指针的区别以及字符串常量的修改
- 字符串常量指针与字符数组的区别
- 字符串截取以及字符数组和字符指针的区别
- 字符串指针与字符数组的区别
- 字符串指针与字符数组的区别
- 字符串指针与字符数组的区别
- 字符串指针与字符数组的区别
- 字符串指针与字符数组的区别
- 字符串指针与字符数组的区别
- 字符串指针与字符数组的区别
- 字符串指针与字符数组的区别
- 字符串指针与字符数组的区别
- 字符串指针与字符数组的区别
- 字符串指针与字符数组的区别
- 字符串指针与字符数组的区别
- 字符串指针与字符数组的区别
- 字符串指针与字符数组的区别
- 字符串指针与字符数组的区别
- ibatis
- Android Makefile中是 如何识别 TARGET_PRODUCT
- 10大负面测试用例
- WinCE中解决“图片采集及压缩”问题的开发历程
- C# Base64加密
- 字符数组与字符指针的区别以及字符串常量的修改
- linux下配置IP和路由信息
- Spring中的ContextLoaderListener作用
- Oracle中查看一个表是否被锁住
- Android开发_如何获取和设置android系统铃声和音量大小
- 出来炸到,等了几天
- poj1026
- Android动画效果translate、scale、alpha、rotate
- Ewebeditor编辑器在IE8下面上传图片的解决办法