[英]Const char *pointer questions?
我有一些与这个简单的代码片段相关的问题。
#include <string.h>
#include <stdio.h>
int main()
{
const char *str1;
str1 = "hello";
printf("%s \n", str1);
return 0;
}
我要问你:
谢谢你们!
像这样对 const char 指针进行赋值是否安全? 考虑到 str1 永远不会改变。
是的。 事实上,这是正确的做法。
指针本身不是const
; 类型const char*
意味着它指向的东西是const
。
如果您的指针是const char* const str1
(一个 const 指针!),那么您以后将无法分配给它。 但是你也会因为一开始没有初始化它而得到一个错误。
是否有可能在赋值时 str1 结果为 NULL?
不。文字"hello"
永远不会为空。 没有字符串文字永远为空。
str1
将指向图像初始化数据中的某个位置。 只是实现依赖于哪里。 永远不要尝试修改str1
的内存,例如通过使用非const
指针对其进行别名。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.