c++中什么叫使用了未初始化的局部变量y?
发布网友
发布时间:2022-05-02 14:02
我来回答
共5个回答
热心网友
时间:2022-06-20 09:36
明显i和y都是局部变量,i初始值是0,但是y就是没有初始化的局部变量。
例如:
int main{int i = 0;
int y;
for(; i < y;i++){
//..........
}
}
扩展资料:
C++中被初始化全局变量在编译时保存在data段中,而没有被初始化的全局变量保存在bss段中。这样保存的理由是在data段的变量在编译生成的文件中需要分配空间存储变量值,
而没有初始化保存变量(或初始化为0的静态变量、全局变量)其默认值为0,没必要将这些值均为0的变量存储在data段中,而采用bss段只是给未初始化的全局变量和局部静态变量预留位置,bss段并没有内容。
但是在程序执行时这些变量会占用内存空间,所以可执行文件必须记录bss段中变量占用空间的大小。
热心网友
时间:2022-06-20 09:36
当局部变量未初始化,且在第一次赋值前引用了该变量值,那么就会报使用了未初始化的局部变量这样一个警告或者错误。
该程序中x,y,z,i均为局部变量,“i=0”首先对i变量进行了初始化,即赋值为0。接下来“for(x=1;y<20;x++)”,未对y进行初始化,赋值,就首次引用该变量,这种错误就叫做“使用了未初始化的局部变量”。
正确改法应该在i=0的时候同样对y进行初始化赋值。
扩展资料:
赋值语句用来表明赋给某一个变量一个具体的确定值的语句叫做赋值语句。在算法语句中,赋值语句是最基本的语句。
在表述一个算法时,经常要引入变量,并赋给该变量一个值。
赋值运算符右侧的值由表达式生成,而表达式则由文本、常数、变量、属性、数组元素、其他表达式或函数调用的任意组合所构成。下面的示例阐释这一点。
VisualBasic
x=y+z+findResult
前面的示例将变量y中存储的值与变量z中存储的值相加,然后与调用函数findResult返回的值相加。然后,此表达式的总值将存储到变量x中。赋值语句的一般格式是:变量名=表达式 其中"="为赋值号
常见的赋值语句有以下几种形式:
(1)a = 3;{赋予变量常数值}
(2)b = a + 1;{将含有其它变量的表达式赋予变量}
(3)N = N...
参考资料:百度百科-赋值语句
热心网友
时间:2022-06-20 09:37
在一个函数里,例如:
int main{
int i = 0;
int y;
for(; i < y;i++){
//..........
}
}
明显i和y都是局部变量,i初始值是0,但是y就是没有初始化的局部变量。
热心网友
时间:2022-06-20 09:37
这个变量在使用之前没有被定义,你找下你的变量y是不是定义在了使用的后面,放到前面去就行了
热心网友
时间:2022-06-20 09:38
for(x=1;y<20;x++)
估计手误了,改成:for(x=1;x<20;x++)
没提示y的情况,运行结果461
c++中什么叫使用了未初始化的局部变量y?
当局部变量未初始化,且在第一次赋值前引用了该变量值,那么就会报使用了未初始化的局部变量这样一个警告或者错误。该程序中x,y,z,i均为局部变量,“i=0”首先对i变量进行了初始化,即赋值为0。接下来“for(x=1;y<20;x++)”,未对y进行初始化,赋值,就首次引用该变量,这种错误就叫做“使用...
c++中什么叫使用了未初始化的局部变量y?
明显i和y都是局部变量,i初始值是0,但是y就是没有初始化的局部变量。例如:int main{int i = 0;int y;for(; i < y;i++){ //...} }
C语言,使用了未初始化的局部变量
当局部变量未初始化,且在第一次赋值前引用了该变量值,那么就会报使用了未初始化的局部变量这样一个警告或者错误。局部变量定义时的形式为 TYPE var = init_value;其含义为定义一个类型为TYPE,名字为var的局部变量,并初始化为init_value。其中,=init_value部分可以省略。此时,var的初始值将是一个...
在vs2010中出现警告“使用了未初始化的局部变量”是什么意思?
变量在使用前可能未赋值,存在隐患。在有些编译系统中,可能会默认为0;但是有些系统中,可能会是一个随机值,导致结果出乎你的预想。
C语言定义了结构体使用时提示使用了未初始化的局部变量是为什么?
可能用到的头文件 include<iostream> include<malloc.h> visitor1.name=(char*)malloc(sizeof(char)*20);//C visitor1.name=new char[20];//C++ /***还可这样写***/ //在结构体内写构造和析构(这是C++的,)//这样写后面再定义结构体变量就不用再一个一个分配内存和释放内存了 struct ...
C语言中什么叫做未初始化局部变量呢?
初始化就是给变量一个初值,你那个int q=0或者是赋给它一个你想要初始的值
c语言 提示 使用了未初始化的局部变量
你的局部变量m没有初始化,应当初始化m=0;
使用了未初始化的局部变量?为什么?一定要用指针要如何改?
即让这个指针变量存放一个地址,比如:int c[3];b=c;要实现你说的功能,只需让指针p指向要赋值的数(即p中存放源地址),然后使用*p访问该数。代码如下:int b[3][3];int *p;for (i=0;i<3;i++){ for (n=0;n<3;n++){ p=&a[n][i];b[i][n]=*p;} } ...
使用了未初始化的局部变量,求大神赐教
void fun(char *s, int *t)只是函数的声明。函数调用应该是:fun(s, &t); // t的地址传给fun作为形参
使用了未初始化的局部变量"b"“a”“c’“x2”
scanf("%f,%f,%f", &a, &b, &c); deta = (b*b - 4 * a*c); //把前面的赋值放到这里来 if (deta<0) { printf("方程无解"); } else if (deta>0) { x1=(-b+sqrt(deta))/(2*a); x2=(-b-sqrt(deta))/(2*a); //x1改成x2 ...