我是c ++语言的新手,我正在尝试理解指针概念.
我有关于char指针的基本问题,
我所知道的是指针是一个存储地址值的变量,所以当我写这样的时候:
char * ptr = "hello";
Run Code Online (Sandbox Code Playgroud)
根据我的基本知识,我认为=应该有一个地址分配给指针,但在这里我们分配"你好",这是一组字符.那是什么意思呢?
指针是否指向ptr存储"hello"的地址?或者它本身存储你好?
我很困惑,希望你们能帮帮我..
提前致谢.
Luc*_*ore 12
ptr保存地址到文字"hello"存储的位置.在这种情况下,它指向一个字符串文字.它是位于静态(最常见的只读)内存中的不可变字符数组.
您可以ptr通过重新分配来指出其他内容,但在此之前,修改内容是非法的.(实际上const char*,char*对于C兼容性,它的类型是不推荐的(在C++ 11中是非法的).
由于这种保证,编译器可以自由地优化空间,因此
char * ptr = "hello";
char * ptr1 = "hello";
Run Code Online (Sandbox Code Playgroud)
可能会产生两个相等的指针.(即ptr == ptr1)
| 归档时间: |
|
| 查看次数: |
517 次 |
| 最近记录: |