多少(&数组)返回什么?

多少(&数组)返回什么?

以下是问题:为什么数组的地址等于它在C中的值?

#include <stdio.h>#define N 10    char str2[N]={"Hello"};int main(){
    printf("sizeof(str2): %d bytes\n", sizeof(str2));
    printf("sizeof(&str2): %d bytes\n", sizeof(&str2));
    return 0;}

产出:

sizeof(str2): 10 bytessizeof(&str2): 4 bytes

我知道str2单独是数组中第一个元素的地址。str2..当str2是…的论点sizeof它返回整个数组str2的大小。

此外,&str2也是arr中第一个元素的地址。str2但来自不同的类型(char (*)[N]=指向数组的指针)。但如何&str2当它是一个争论的时候sizeof?


开心每一天1111
浏览 438回答 3
3回答

蓝山帝景

&str2是一个指针。所以你只是在你的平台上看到一个指针的大小。

慕码人8056858

str2是类型的char [10](即数组)10 of)&str2是类型的char (*)[10](即指向数组的指针)10的char).所以sizeof (&str2)生成指针类型的凸轮廓线的大小。char (*)[10]
打开App,查看更多内容
随时随地看视频慕课网APP