c - 为什么第二个元素被打印为1?

标签 c sizeof

#include <stdio.h>
int main(){
int arr[4]={0,0,0,0};
int i;
for(i = 0; i < sizeof(arr)/sizeof(arr[0]); i++){
    printf("%d ",arr[i]);
 }
}

以下 C 代码打印第二个元素,即 arr 1为 1。它应该打印 0。其余元素将打印为 0。

enter image description here

最佳答案

请提供您的编译器的屏幕截图和配置设置,因为我们无法重现该问题。看起来效果很好。

I compiled your code in here, and you can see the result

#include <stdio.h>
int main(){
int arr[4]={0,0,0,0};
int i;
for(i = 0; i < sizeof(arr)/sizeof(arr[0]); i++){
    printf("%d ",arr[i]);
 }

}

关于c - 为什么第二个元素被打印为1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33337175/

相关文章:

c - 新手关于malloc和sizeof的问题

c - C 编程中同一行中的值相加

c - 在 C 中解析 csv 文件时 double 丢失

使用函数进行 C 编程

c++ - 为什么 sizeof(Base) 与 sizeof(Derived) 没有区别

c - 为什么 sizeof 被实现为运算符而不是宏

c - 在 C 中解析字符串

c - 如何在C中初始化哈希表

c - c中的sizeof mmap,我们如何知道我分配了多少内存

c++ - Typedef 二维数组的大小