c中关于char指针的混淆

c中关于char指针的混淆,第1张

概述我是c语言的新手,我正在努力理解指针概念. 我有关于char指针的基本问题, 我所知道的是指针是一个存储地址值的变量, 所以当我写这样的时候: char * ptr = "hello"; 根据我的基本知识,我认为在=之后应该有一个地址分配给指针,但是在这里我们分配“hello”这是一组chars. 那是什么意思呢? 指针ptr是否指向存储“hello”的地址?或者它本身存储你好? 我很困惑,希望你 我是c语言的新手,我正在努力理解指针概念.

我有关于char指针的基本问题,

我所知道的是指针是一个存储地址值的变量,
所以当我写这样的时候:

char * ptr = "hello";

根据我的基本知识,我认为在=之后应该有一个地址分配给指针,但是在这里我们分配“hello”这是一组chars.
那是什么意思呢?
指针ptr是否指向存储“hello”的地址?或者它本身存储你好?
我很困惑,希望你们能帮帮我..

提前致谢.

解决方法 ptr将地址保存到文本“hello”的存储位置.在这种情况下,它指向一个字符串文字.它是位于静态(最常见的只读)内存中的不可变字符数组.

您可以通过重新分配来使ptr指向其他内容,但在此之前,修改内容是非法的. (它的类型实际上是const char *,为了C兼容性,不推荐转换为char *(在C 11中甚至是非法的).

由于这种保证,编译器可以自由地优化空间,因此

char * ptr = "hello";char * ptr1 = "hello";

可能会产生两个相等的指针. (即ptr == ptr1)

总结

以上是内存溢出为你收集整理的c中关于char指针的混淆全部内容,希望文章能够帮你解决c中关于char指针的混淆所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1223315.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存