当前位置:  开发笔记 > 编程语言 > 正文

为什么可以将数组赋给char指针?

如何解决《为什么可以将数组赋给char指针?》经验,为你挑选了1个好方法。

通常,当您声明指针(例如int)时,您必须为其分配一个内存地址:

int value = 123;
int* p = &value;

创建char指针时,可以为其指定char数组,而无需包含地址:

char* c = "Char Array";

这是如何运作的?它是否分配内存并指向它?为什么其他类型的指针不能做同样的事情?



1> emlai..:

这是如何运作的?

字符串文字存储在可执行文件的只读数据部分中(意味着它在编译期间初始化),c并初始化为指向该内存位置.隐式数组到指针转换处理其余部分.

请注意,char*不推荐使用字符串文字的转换,因为无论如何内容都是只读的; const char*在指向字符串文字时更喜欢.

相关构造char c[] = "Char Array";char在运行时将字符串文字的内容复制到数组中.

为什么其他类型的指针不能做同样的事情?

这是字符串文字的一种特殊情况,为方便起见,继承自C语言.

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有