C 变量声明

C++ Variable declaration

本文关键字:声明 变量      更新时间:2023-10-16

我不确定它如何或为什么起作用:

#include <stdio.h>
#include<stdlib.h>
#include <limits.h>
#include <iostream>
using namespace std;
int main() {
 int min = INT_MAX, min_index;
 cout << min <<"n";
 cout << INT_MAX << "n";
 cout << min_index <<"n";

 system("pause");
 return 0;
}

minINT_MAXmin_index有实际输出我知道INT_MAXlimits.h的一部分,因此minINT_MAX是相同的,但Min_Index没有给出一个值,为什么它显示一个值。

c 不是内存安全语言。不能保证变量已在使用之前已分配了一个值。

您将视为min_index的印刷值是min_index的内存中的值,恰好是从以前设置内存的最后一次。

从这样的初始化变量读取是"未定义的行为",因为该程序的每个调用可能会导致不同的,意外的结果(取决于最后使用的内存最终分配给min_index的内存)。

在C和C 等语言中,当您定义变量时,例如:

int x;

将一小部分内存分配给了变量。但是,我们仅声明了变量,而不是初始化的变量,这意味着已分配给该变量的内存块仍然包含以前程序和操作中剩下的一些值。该值称为垃圾值。这可能会导致程序中的错误结果。

为了避免这种情况,请声明并初始化这样的变量:

int x = 0;

来源:变量中的垃圾值是什么意思?

另请参阅:非initiliazed变量如何获得垃圾值?

,因为$ min_index未初始化为指定值,而是将其分配给内存位置。如果您在不先初始化的情况下打印min_index,则该内存位置上的值将被解释为min_index类型的数据。

因此,始终建议初始化变量,因为您永远不会知道,该内存位置的值是什么。

您不能初始化min = int_max。该值是由于垃圾值

而显示的