You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言二维数组元素类型疑问:赋值用单引号的原因及类型确认

关于你的C语言数组问题解答

数组元素的实际类型

你声明的int accumulator[10][10];是int类型二维数组,每个元素的类型都是int,完全符合你想要整数元素的需求。

单引号'0'的问题

  • '0'是字符常量,在C语言中它对应的ASCII码值是48,不是整数0。把它赋值给int类型数组元素时,数组里实际存储的是48,而非你期望的整数0。
  • 你用printf("%c ", accumulator[i][j]);输出时,%c格式符会把整数转换成对应的ASCII字符,所以48会被显示为字符'0',看起来结果正确,但数组内部存的并不是整数0。

正确实现10×10全零整数数组

要得到真正的全零整数数组,需要两处修改:

  1. 赋值时使用不带单引号的0(整数常量);
  2. 输出整数0时用%d格式符(对应十进制整数输出)。

修改后的完整代码:

#include <stdio.h>
#include <stdlib.h>

int main() {
    int accumulator[10][10];
    int i, j;

    // 遍历整个10×10数组赋值为0
    for (i = 0; i < 10; i++) {
        for (j = 0; j < 10; j++) {
            accumulator[i][j] = 0;
            printf("%d ", accumulator[i][j]);
        }
        printf("\n");
    }

    return 0;
}

另外,还有更简洁的初始化方式:在定义数组时直接初始化,C语言会自动将未显式赋值的元素设为0,所以一行就能搞定全零初始化:

int accumulator[10][10] = {0};

内容的提问来源于stack exchange,提问作者mbruenning

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 11:10:39