小编San*_*rma的帖子

字符串文字和数组的地址

    int main(){
        char *str1="Hi", *str2 = "Bye";
        printf("%u,%u\n",&str1,str1);
        int arr[5]={1,2,3,4,5};
        printf("%u,%u",arr,&arr);
    }
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?str&str给出不同的地址,arr&arr给出相同的地址。

我的理解是arr指向第一个元素的地址,即&arr[0]&arr也会给出相同的地址,但它是整个地址arr[5]。如果我们增加&arr1,那么它将指向 arr[4] 的下一个元素。但问题是为什么这个过程在字符串的情况下是不同的。请帮我在这里形象化这个概念。

c arrays string pointers string-literals

1
推荐指数
1
解决办法
409
查看次数

标签 统计

arrays ×1

c ×1

pointers ×1

string ×1

string-literals ×1