为什么c++中inti的值一定是0呢?

如题所述

显然,I和y都是局部的变量。I的初值是0,但是y是未初始化的局部变量。

如:

IntI=0;Inty;

(;我< y;我+ +){

//……

扩展资料:

在c++中初始化的全局变量在编译时存储在数据段中,而未初始化的全局变量则存储在BSS段中。这样做的原因是data部分中的变量需要分配空间来将它们的值存储在编译后的文件中,

不初始化保存变量(或初始化为0的静态变量或全局变量),其默认值为0。没有必要在data部分存储其值都为0的变量。但是,BSS部分只保留给未初始化的全局变量和局部静态变量。

但是,这些变量在程序执行时占用内存空间,因此可执行程序必须记录这些变量在BSS段中占用多少空间。

温馨提示:内容为网友见解,仅供参考
无其他回答

为什么c++中inti的值一定是0呢?
显然,I和y都是局部的变量。I的初值是0,但是y是未初始化的局部变量。如:IntI=0;Inty;(;我< y;我+ +){ //……} }

c++中变量inti的值是什么?
1、局部变量。局部变量在没有显式初始化时,其值C语言规范没做要求,可以是随机值,也可以是编译器随意给定的值。比如gcc编译器的局部变量就是随机值,可能为任何值。而微软的编译器,如VC或VS,则会初始化为全c,即0xCCCCCCCC。2、全局变量或静态局部变量。所有的全局变量,即定义在函数外的变量,...

给某整型变量初始化,int i和int i = 0有什么区别???(c++中)
当这个变量是类的成员变量时,int i即使没有显示的初始化,也有一个默认初始值0,所以两种写法没有区别。当这个变量是方法中的成员变量是,int i不会有默认初始值,内存中还没有为改变量分配空间,所以不能使用,只有当int i=0初始化后,才能正常使用。

C++,运算过程中int i怎么变成ox000000000
例如 for( i=0;i<20;i++) 没有i++,i值就会始终为0

C++程序 返回结果为什么总是0?
在子函数中的变量是不可以和调用函数共享内存的 也就是说你main函数 中的temp 在定义的时候是0你没有改变它的值 输出的一定是0 你可以这样写 修改Compare函数 int Compare(int a[N],int b[N],int i=0,int j=0,int k=0,int temp=0){ ...\/\/你的代码 return temp;} main中 加一个 t...

c++中为什么值会是0请大侠指教
float jgf(float x[10]){ int i;float n=0;for(i=1;i<10;i++)if(n<x[i])n=x[i];return(n);} 这里n始终是最小啊。始终返回0啊,有负数?不管如何n要初始化一个大值

给某整型变量初始化,int i和int i = 0有什么区别?(c++中)
int i只是定义一个整型变量, int i = 0 是定义了一个整型变量并赋初值,就这点区别.

给某整型变量初始化,int i和int i = 0有什么区别??(c++中)
int i表示i为整型变量,但未赋初值,int i = 0表示i为整型变量,初值为0 你可以试下只用int i然后输出i,每次运行结果应该会不一样。

C程序中 int i;for(i=0;;) 与 for(int i=0;;) 两种定义循环变量的方式...
两种均可,前者i在for循环外部定义,则i的值在程序未结束之前就一直存在,i所占的内存空间直到程序结束时才释放;后者的i在for循环内部定义,则当for循环结束时,i所占的内存空间就被释放了。一般建议用后者的方式,因为当程序较大时,前者更占内存,这样程序在运行时CPU的负担就更大,内存溢出的风险...

C++里面if(int)语句中的int为正时该语句是对的,为0时是错的,是这样吗...
不是的,仅当值为0时是错,非0即是对的。你也可以写个语句验证我的说法。if里面的值不是0里面的都会被执行。

相似回答
大家正在搜