〃忝書γě渎ぐ 发表于 2019-12-1 16:23:59

C语言数组这种用法,在C标准中叫什么名字,主要用来做什么或只是提升灵活性?

#include <stdio.h>

int main()
{
    int a = {0,1,2};

    printf("%d\n",2); //为什么也能正常输出2

    return 0;
}
    int a = {0,1,2};
000000013F6E1034mov         dword ptr ,0
000000013F6E103Cmov         dword ptr ,1
000000013F6E1044mov         dword ptr ,2

    2 = 3;
000000013F6E104Cmov         dword ptr ,3
    a = 1;
000000013F6E1054mov         dword ptr ,1

    return 0;

#include <stdio.h>

int main()
{
    int a = {0,1,2};

    int j = 1;

    j = 3;

    printf("%d\n",j);
    printf("%d\n",a);

    return 0;
}

人造人 发表于 2019-12-1 16:24:00

a 相当于 *(a + 2)

2 相当于 *(2 + a)

*(a + 2) 相当于 *(2 + a)

所以 a 相当于 2
页: [1]
查看完整版本: C语言数组这种用法,在C标准中叫什么名字,主要用来做什么或只是提升灵活性?