繁体   English   中英

const char * 指针问题?

[英]Const char *pointer questions?

我有一些与这个简单的代码片段相关的问题。

#include <string.h>
#include <stdio.h>

int main()
{
   const char *str1;
   str1 = "hello";
   printf("%s \n", str1);
   return 0;
}

我要问你:

  1. 像这样对 const char 指针进行赋值是否安全? 考虑到 str1 永远不会改变。
  2. 是否有可能在赋值时 str1 结果为 NULL?

谢谢你们!

像这样对 const char 指针进行赋值是否安全? 考虑到 str1 永远不会改变。

是的。 事实上,这是正确的做法。

指针本身不是const 类型const char*意味着它指向的东西是const

如果您的指针是const char* const str1 (一个 const 指针!),那么您以后将无法分配给它。 但是你也会因为一开始没有初始化它而得到一个错误。

是否有可能在赋值时 str1 结果为 NULL?

不。文字"hello"永远不会为空。 没有字符串文字永远为空。

  1. 完成任务是安全的。
  2. 赋值后, str1将指向图像初始化数据中的某个位置。 只是实现依赖于哪里。

永远不要尝试修改str1的内存,例如通过使用非const指针对其进行别名。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM