当设置等于“”时,啥是 char*?

Posted

技术标签:

【中文标题】当设置等于“”时,啥是 char*?【英文标题】:What is a char* when set equal to ""?当设置等于“”时,什么是 char*? 【发布时间】:2017-02-06 02:40:04 【问题描述】:

我正在尝试为赋值编写自己的字符串类,我想知道如何处理“”的参数。

例如,如果有调用:

s = myString("")

长度是多少,在我的“myString”类中保存数据的 char* 的内容是什么?

【问题讨论】:

长度为 0,所以 char* 不应包含任何内容(即 char[0] 为 NULL) char[0] 将是 0,而不是 NULL) char[0] 不是指针,因此它不会为 NULL。零 那么它的长度会不会是 1,char[0] 会是 0,然后会有一个以 null 结尾的字符? 在空(C 风格)字符串的情况下,char *str = ""str[0]0,而 终止 NUL 字符。之后没有额外的 NUL 字符。 (注意“NUL”指的是零 ASCII 值,而 C 和 C++ 中的“NULL”是一个特殊的指针值,它不指向内存中的某个位置。它是终止 C 样式字符串的前者。) 【参考方案1】:

传递给您的char * 将是一个指向char 的“空”终止列表的指针,该列表很可能是一个单一的、不可变的char,其值为0(或“空")。

例如...

const char* s = "";
char value = *s;
int length = strlen(s);

...应该导致...

s == [compiler defined]
!value == true
length == 0

【讨论】:

更具体地说是指向不可变 char 的指针,其值为 0

以上是关于当设置等于“”时,啥是 char*?的主要内容,如果未能解决你的问题,请参考以下文章

404错误页面设置_啥是网页404错误-我该如何设置404页面

当累积列小于或等于目标时设置组数

调整列表视图大小时如何设置标题宽度等于其列表视图控件宽度?

电脑上啥是设置生存时间?

如何/啥是嵌套函数中声明为非本地设置的变量的值?

PayPal iOS Live App 设置 - 啥是返回 URL?