小编Hos*_*med的帖子

试图理解数组符号

在以下代码中:

int main()
{

    int i = 15, j = 1;
    int *a[] = {&i, &j};
    printf("%d", (*a)[0]);
    return 0;

}
Run Code Online (Sandbox Code Playgroud)

输出(*a)[0]15(i的值)但是当我试图检查(*a)[1]它时给出了一个垃圾值.我希望相同的表达式适用于数组中的所有条目,但它只适用于数组中的第一个元素.

c arrays

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

foo((&i)++)在C中给出了编译错误

在下面的例子中,我希望foo((&i)++)将计算为foo(4 +地址为(i)),假设int size是4 Byte但是它在此行给出了编译错误

有人有解释吗?

void foo(int*);
int main()
{
    int i = 10;
    foo((&i)++);
}
void foo(int *p)
{
    printf("%d\n", *p);
}
Run Code Online (Sandbox Code Playgroud)

c

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

标签 统计

c ×2

arrays ×1