字符 指针_字符指针指向字符串

字符 指针_字符指针指向字符串王道笔记C-day21-字符指针与字符数组的初始化回顾上节课内容:虽然前面,讲了很多的一级指针但是我们练习的场景,指针与后++的关系。还有指针要申请空间,申请空间,就是在堆空间申请偏移,来放置数据。当我们讲排序的时候,我们就会使用malloc来申请堆空间,然后放入整数。puts

王道笔记C-day21-字符指针与字符数组的初始化   回顾上节课内容:
字符 指针_字符指针指向字符串
字符 指针_字符指针指向字符串
字符 指针_字符指针指向字符串
字符 指针_字符指针指向字符串
字符 指针_字符指针指向字符串
字符 指针_字符指针指向字符串   虽然前面,讲了很多的一级指针   但是我们练习的场景,指针与后++的关系。   还有指针要申请空间,申请空间,就是在堆空间申请偏移,来放置数据。
字符 指针_字符指针指向字符串   当我们讲排序的时候,我们就会使用malloc来申请堆空间,然后放入整数。
字符 指针_字符指针指向字符串
字符 指针_字符指针指向字符串   puts(c)与puts(p)都可以打hello,那么这两种方式,到底有什么区别呢。
字符 指针_字符指针指向字符串
字符 指针_字符指针指向字符串   请看原理,在看场景。   根据原理,你来看场景,能不能做?   关键我们不仅仅是初始化   如果char *p=hello  ,p是一个指针变量。   此时它只有4个字节,   原理:   字符串常量区有一个hello的字符串,   它有一个地址,它的h有起始地址。   这里是我们的数据段,数据段有字符串常量区,就叫常量区。   p里面存4个字节,实际上这四个字节存储的就是hello的起始地址,   接着你又定义了C[10],它是要占10个字节空间的。
字符 指针_字符指针指向字符串你把hello这样给C[10]这样与刚才char*p的作用在于。   strcpy()它把Hello的五个字符呢,依次赋值到栈空间里边。   也就是说,c里边,已经存储了这一份hello了。   那我们都知道栈空间是不是可读可写的。   这是你的数组,这个时候你可以改变   接下来做两件事情。   我想把C[0]改成大写的H
字符 指针_字符指针指向字符串
字符 指针_字符指针指向字符串
字符 指针_字符指针指向字符串p的地址指向的都是字符串常量区。字符串hello不应该是六个字节么,这里怎么有有个00是空着的?
字符 指针_字符指针指向字符串   对齐,结构体会说。
字符 指针_字符指针指向字符串C[0]已经是大写的H了,大写的hello了。&c这里是我们的栈空间。   而且P和C距离很近的。
字符 指针_字符指针指向字符串
字符 指针_字符指针指向字符串   因为他指向的都是字符串常量,所以每一个都不可以改。
字符 指针_字符指针指向字符串   
字符 指针_字符指针指向字符串   p所指向的是字符串常量区   那么字符串常量区,每一个都是不可以更改的。   hello在这里的字符串常量区,是只有一份的    
字符 指针_字符指针指向字符串虽然主函数存在两个字符串常量hello,一个是char*p  一个是c[10]。但是你编译的时候,字符串常量区,却是只有一份hello。这就是为什么字符串都要放在字符串常量区的好处。它不会有多份的。
字符 指针_字符指针指向字符串这个位置不可以写,固定的。   为什么不可写?   其实你在编译的时候,每个地方替换成hello,实际上是把地址给它
字符 指针_字符指针指向字符串在初始化的时候,相当于进行了 strcpy
字符 指针_字符指针指向字符串strcpy所要传递的类型,就是字符指针。它是把首地址给你了。你在任何地方写字符串,那都是把首地址给了过去。
字符 指针_字符指针指向字符串一旦变化,那么谁在拿首地址,在来访问字符串常量的时候,就不符合预期了。   
字符 指针_字符指针指向字符串F10
字符 指针_字符指针指向字符串写入发生冲突,就是没有写的权限。这个是不合法的。   所以这就是两种初始化是有区别的。
字符 指针_字符指针指向字符串   第二件事   我们知道,原来P指向hello,那么现在我想让P指向word.   现在又想让C也是word。
字符 指针_字符指针指向字符串编译不通
字符 指针_字符指针指向字符串左操作数,必须为左值。左操作数是不可以修改的,它左边是存储的一个位地址的常量。你可以理解它为地址常量。但是我们的p就可以,因为我们的world.虽然它也是在字符串常量区。刚才说了,任何一个字符串常量,放在这里,它都是一个地址。这个地址是可以赋值给指针变量的。因为指针变量是可以存储hello的地址。它也可以存world的地址。它可以换,所以这个时候,它就可以改变。而C这里就不行。   字符指针和字符数组,它的初始化,是有区别的。你什么时候用什么,依赖于你的需求。
字符 指针_字符指针指向字符串   比如,你想做的是,我一开始想去指向的是一个字符串,后来,我又想指向,另外的字符串,  你是字符串之间的不停打印,那么你就用字符指针。这个时候,是不能用字符数组的。   但是如果你是想用,存下的字符串,你把字符串里的每一个字符。要进行修改,处理,那这个时候,肯定不能用字符指针了,那么你字符指针指向的是常量区,那肯定不行。除非你字符指针,你所指向的不是字符串常量区。比如,我们定义一个字符指针。让它直接等于c   这个时候是可以的。它可以进行偏移的去访问,数组的素是可以修改的。   以上为字符数组的初始化,和字符指针的初始化。
字符 指针_字符指针指向字符串一个是指向hello,一个是存储了hello。一个hello在栈,一个hello在数据段。

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/87621.html

(0)
上一篇 2024年 7月 25日 下午10:02
下一篇 2024年 7月 25日 下午10:06

相关推荐

关注微信