剑指 offer 笔试题 · 常量字符串
🔥每篇前言
1.引入:字符指针
在指针类型中我们知道有一种指针类型是 char*,它有两种使用方法:
一般使用:
复制代码
这种使用方法比较简单,我就不过多阐述了,看看下面这种使用方法:
复制代码
==注意上面的 abcdef 是常量字符串,存储在内存的只读数据区(只读不可写)==
==特别容易让我们以为是把字符串 abcdef 放到字符指针 p 里了,其实本质上是把字符串 abcdef 首字符的地址放到 p 中==
所以下面代码是有问题的:
复制代码
上面的第 6 行代码是错误的,因为常量字符串不可以修改,所以为避免上述错误,可将第 5 行代码修改为:
复制代码
这样的话就会避免上述错误。
2.剑指 offer · 常量字符串面试题
面试题:
复制代码
解题思路:
str1 和 str2 是两个字符数组,数组的操作方式是将右边的常量字符串拷贝到数组的空间中,所以它们是两块空间,只是内容相同,而作为数组名,str1 和 str2 是数组首元素的地址,所以 str1 != str2
==str3 和 str4 是两个字符指针,指向的是同一个常量字符串,而常量字符串存储在单独的一个内存区域(只读数据区),当几个指针指向同一个常量字符串的时候,它们实际上会指向同一块内存==
3.遇见安然遇见你,不负代码不负卿。
前段时间博主状态不好,没有及时更新,后面就会慢慢提速咯。
版权声明: 本文为 InfoQ 作者【安然无虞】的原创文章。
原文链接:【http://xie.infoq.cn/article/24e9a1f1d6a343e239bf31ba6】。文章转载请联系作者。
评论