字符指针,顾名思义指向字符的指针
直接看下面代码:
通过指针指向该字符的地址,我们通过解引用操作(*p)就拿到了该字符
是不是很容易?哈哈哈哈没错就是这么简单!!!
我们接下来看
那么看到这段代码你是不是也感觉简单,哈哈哈哈哈。但是你被骗了
接下来继续看下面的代码:
为什么数组arr1和数组arr2不相等?指针ptr1和指针ptr2相等?
这我们就要知道数组的创建了,进阶1讲过数组在内存中是一段独立的内存空间,但是数组在创建和变量一样是没办法知道编译器创建在内存那个位置的,所以就是因为如此,才有了数组,在内存中开辟了一段连续的空间,用来存放不同类型的变量,那么我们再去找变量拿来使用是不是就更加容易了一些呢,直接去数组中找到相关的元素就好了,那么数组在内存中开辟的空间地址也是不确定的,不能只是把存放字符串相同当作判断相等的标志,所以它并不相等。
那么我们是不是就可以这样理解 ---> 数组名神似指针?(并不是指针下一节会讲到)。
那么为什么第二个又是相等的?
因为const修饰的是一个常量,并且是一个不可修改的常量,所以我们称这个变量是常量字符串,那为什么又是相等呢?
在内存中,我们的字符串常量是放在我们常量区的。
常量区: 注意在常量区存放的数据一旦经初始化后就不能被修改。 程序结束后由系统释放。
所以电脑内存它不会在常量区因为同一个字符串而开辟两块内存空间的,它只会共用一块。
那么两个指针变量里面存放的都是同一个地址,那么它们肯定是相等的。
哈哈哈哈哈,懂了没?
以上只是学习过程的记录,如有错误,还请大家指出来改正。