当前位置: 首页 > 知识库问答 >
问题:

为什么打印10而不是3?C语言[重复]

艾令秋
2023-03-14
#include <stdio.h>

int main(){
    int a = 3;
    int b[] = {1,2};
    int c = 4;
    b[3] = 10;

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

    return 0;
}

产出:10

它可能是一个整数输出,它也不携带任何垃圾值,但当我将值分配给变量a作为a=5和高于值5时,它只是按原样打印输出,告诉我这里发生了什么!

共有1个答案

公孙智
2023-03-14

代码中有未定义的行为

b[3] = 10;

初始化数组时,只为2个项目分配了空间。您正试图访问第4个元素,而该内存不属于数组,因此您将获得wierd结果。变量a存储在与b[3]相同的位置,因此被覆盖

尝试打印sizeof您的数组,并检查为数组分配了多少内存

 类似资料:
  • 上面的片段结果是x=1,y=10,z=3,请解释这段代码。提前致谢

  • 我试图制作一个基本的C程序来读取一个文件,但由于某种原因,当我使用运行它时<代码>/Test1 Test1。txt我得到“错误:'s'可能在未初始化的情况下用于此函数”。

  • 本文向大家介绍什么是C语言的字谜?,包括了什么是C语言的字谜?的使用技巧和注意事项,需要的朋友参考一下 字谜字符串只不过是在另一个字符串中出现相同次数的所有字符,我们称之为字谜。 用户输入两个字符串。我们需要计算每个字母(“ a”至“ z”)出现在其中的次数,然后比较它们相应的计数。字符串中字母的出现频率是它出现在其中的次数。 如果两个字符串对特定字母的频率计数相同,那么我们可以说这两个字符串是字

  • 所以我有这个代码,叫我白痴哈哈,但是我不能让它打印7。 代码: 我需要知道如何改变与函数中的参数同名的变量。 任何帮助都将不胜感激,如果你不明白这个问题,我很乐意解释更多。

  • 在python为什么 我想当时,这应该是正确的。应该给我,但是为什么没有?如果这是对的,为什么当,它给我?

  • 问题内容: 我正在阅读一个python脚本,该脚本接受XML文件的输入并输出XML文件。但是,我不了解打印语法。可有人请解释什么的呢? 问题答案: 该方法格式化字符串字面量 和它的新功能。 甲 格式的字符串文字 或 F-串 是前缀字符串文字或。这些字符串可能包含替换字段,这些替换字段由花括号分隔。尽管其他字符串文字始终具有恒定值,但是格式化的字符串实际上是在运行时评估的表达式。 格式化字符串文字的