小编Day*_*rai的帖子

*(a ++)给出错误但不是*(a + 1)?? 其中a是数组名称?

在以下代码中:

void main()
{
    char a[]={1,5,3,4,5,6};
    printf("%d\n",*(a++)); //line gives error: wrong type argument to increment
    printf("%d\n",*(a+1));
}
Run Code Online (Sandbox Code Playgroud)

第4行和第5行之间有什么区别.我没有收到第5行的任何错误或警告.

c arrays pointers

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

3.9.6中常量相似的"VM_RESERVED"和nopage方法

在3.9.6中找不到VM_RESERVED常量和nopage方法(in vm_operations_struct).它们在3.9.6中的替代品是什么?

linux-device-driver linux-kernel

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

什么是C代码的输出?我需要解释

int main() 
{
    char boolean[][6]={"TRUE","FALSE"};
    printf("%s",boolean[(unsigned int)-1 == ~0]);
}
Run Code Online (Sandbox Code Playgroud)

执行后,我认为它为FALSE.是什么原因?

c

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

是printf("%d",*(++(*a))); 未定义

printf("%d",*(++(*a)));未定义?这a是指向整数的指针.

我没有除此之外的任何代码.这个问题的扩展,引起了很多困惑.只想知道这个print中发生了什么.它依赖于Architechture(32 Vs 64)或编译器版本.

希望答案具有描述性和清晰性.

c

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

标签 统计

c ×3

arrays ×1

linux-device-driver ×1

linux-kernel ×1

pointers ×1