为什么编译器给int初始化为0
1. int是不是只有在全局变量时才自动初始化为0其它内置变量类型呢
对
全局变量属于静态内存分配
根据ISO规定得知
在采用段式内存管理的架构中(比如intel的80x86系统),bss段(Block
Started
by
Symbol
segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域,一般在初始化时bss
段部分将会清零。bss段属于静态内存分配,即程序一开始就将其清零了。
而局部变量是根据你的编译器
有的编译器
会给未初始化的变量进行初始化,有的就不会!
希望对楼主有所帮助
2. C语言中声明一个结构体,结构体中的int类型是否都被初始化为“0”
首先你这是C++,不是C语言。C语言必须是struct mytype AAA;
另外如果结构体变量在函数外全局区定义,那么编译器基本上会默认初始化为0;如果该结构体变量是局部的,结果未知。
3. c++ int类型默认值是多少
如果是定义的全局变量或者静态变量,未初始化的话就是0.如果是局部变量,那就是以前残留在堆栈里的随机值。
区分变量的类型,有两种情况。
1、局部变量。
局部变量在没有显式初始化时,其值C语言规范没做要求,可以是随机值,也可以是编译器随意给定的值。
比如gcc编译器的局部变量就是随机值,可能为任何值。而微软的编译器,如VC或VS,则会初始化为全c,即0xCCCCCCCC。
2、全局变量或静态局部变量。
所有的全局变量,即定义在函数外的变量,默认值为0。
所有的静态局部变量,即定义在函数内部的static int name形式的,默认初始化为0。
(3)为什么编译器给int初始化为0扩展阅读:
定义方法:
inti;//定义整形变量i
inti=1;//定义整形变量i并初始化为1
定义常量:
constinti;//编译错误,因为常量需要给予一个初值
constinti=1;//定义常量i,值为1
java定义常量:
finalinti=1;//定义常量i,值为1
4. C中,为什么定义一个全局整型变量出始化是0
按规定,程序中所有变量在使用前都要先有值(初始化)以后才能使用。例如,赋值号右边的变量。道理很简单,你要计算a+b等于几,你当然要先让a,b有初值,否则谁也不知道a+b等于几。
凡未初始化的单元,每个bit位的值是不固定的,可能1,可能0,取决于上次该地址被使用的结果。
全局整型变量出始化前是否为0,取决于编译器,有的编译器可能做了“总清”,有的可能没做。
要养成“变量在使用前要初始化”的好习惯。
5. C语言的问题
因为如果没有赋值的话,计算机会给个随机数,所以,除了你已经赋过值的属以外,其他的数都是不定的。如果你想实现你说的,那就使用静态变量(加一个static),静态变量没有赋值的话全部都是0.程序我给你写好了,你看一下
#include<stdio.h>
#define N 7
void main()
{ int i,j;
static a[N][N];
for(i=0;i<N;i++)
a[i][0]=1;
for(i=0;i<7;i++)
for(j=0;j<7;j++)
printf("%d\n",a[i][j]);
}.也就是加一个static
6. map<string,int>中的 int 的初始值为什么是 0
int的默认值应该是0, 你使用的应该是Integer对象。 Integer是Object子类,是对象,可以为null。int是基本数据类型,必须初始化,默认为0
7. int的初始值默认在这个编译器正常是0,但是为什么那个nmb函数一开始不给它赋值为0 程序的结果完全不一样
如果赋初始值会影响程序, 那说明在不初始化时, 默认初始化值并不是你说的0.
根据C语言规范, 未显式初始化的局部变量值应为随机。
你可以尝试在没有初始化时,打印nmb的初始值确认。
8. java题: int a【】=new int【3】.a【0】的值为什么是0
你没有赋初值的情况下编译器一般会默认为0。
就是这么回事。
9. 在C语言中,为什么定义变量的时候总是初始化为0呢该怎么理解。
因为变量是可以变动的,定义一个变量不初始化时,变量会是一个随机数,进行计算了的时候,就会引用那个随机数进行计算,会有误差。
10. int是不是只有在全局变量时才自动初始化为0其它内置变量类型呢
对
全局变量属于静态内存分配 根据ISO规定得知 在采用段式内存管理的架构中(比如intel的80x86系统),bss段(Block Started by Symbol segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域,一般在初始化时bss 段部分将会清零。bss段属于静态内存分配,即程序一开始就将其清零了。
而局部变量是根据你的编译器 有的编译器 会给未初始化的变量进行初始化,有的就不会!
希望对楼主有所帮助