我有关于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指针的混淆所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)