【发布时间】:2021-02-04 13:57:01
【问题描述】:
char str[] = "a";
char ch = 'a';
说到两者的区别,大家都知道str指向一个存储[a,\0]的内存空间,但是我想问一下str[0]和ch有区别吗?
【问题讨论】:
-
str是一个数组,ch不是。这是唯一的区别。 -
只需阅读您的 C 编程书籍的字符串章节...
-
@AyxanHaqverdili 但 OP 询问了
str[0]。 -
str没有“指向内存空间”,因为str不是指针。见:Is an array name a pointer? -
我给你一个更好的:不仅是
ch == str[0],事实上ch == *str和ch == 0[str]...str[0]只是访问存储在数组str中的值在偏移量/索引 0 处。这使得类型为char和值'a'