博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数组名和指针
阅读量:6158 次
发布时间:2019-06-21

本文共 831 字,大约阅读时间需要 2 分钟。

hot3.png

最近遇到这么一个问题:

int main(){

//char* p = "aaa";     /* will crash later */

char p[] = "aaa";       /* good */
*p = 'b';
return 0;
}

查《c programming language》发现:

There is an important difference between these definitions: 

char amessage[] = "now is the time"; /* an array */
char *pmessage = "now is the time"; /* a pointer */

amessageis an array, just big enough to hold the sequence of characters and '\0'that initializes it. Individual characters within the array may be changed but amessage will always refer to the same storage. On the other hand, pmessageis a pointer, initialized to point to a string constant; the pointer may subsequently be modified to point elsewhere, but the result is undefined if you try to modify the string contents. 

原来char* p = "aaa";这种定义方法,p指向的内容是不能修改了,如果强制修改,结果是未知的!

转载于:https://my.oschina.net/mayqlzu/blog/113326

你可能感兴趣的文章
修改GRUB2背景图片
查看>>
Ajax异步
查看>>
好记性不如烂笔杆-android学习笔记<十六> switcher和gallery
查看>>
JAVA GC
查看>>
3springboot:springboot配置文件(外部配置加载顺序、自动配置原理,@Conditional)
查看>>
前端第七天
查看>>
图解SSH原理及两种登录方法
查看>>
【总结整理】JQuery基础学习---样式篇
查看>>
查询个人站点的文章、分类和标签查询
查看>>
基础知识:数字、字符串、列表 的类型及内置方法
查看>>
JSP的隐式对象
查看>>
JS图片跟着鼠标跑效果
查看>>
[SCOI2005][BZOJ 1084]最大子矩阵
查看>>
学习笔记之Data Visualization
查看>>
Leetcode 3. Longest Substring Without Repeating Characters
查看>>
416. Partition Equal Subset Sum
查看>>
app内部H5测试点总结
查看>>
[TC13761]Mutalisk
查看>>
while()
查看>>
常用限制input的方法
查看>>