Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
变量在声明后具有值 我刚刚开始学习C++,我遇到了一个小问题。声明变量后,它们会被赋值 #include <iostream> #include <fstream> using namespace std; ifstream d ("d.txt"); ofstream r ("r.txt"); int plotas (int a, int b); int main() { int p, a, n, x1, x2, y1, y2, s, s1; d >> p >> a; d >> n; for(int i =0; i < n; i++){ d >> x1 >> y1 >> x2 >> y2; s+= plotas((x2-x1), (y2-y1)); } s1= plotas(p, a)- s; cout << s1; } int plotas (int a, int b){ return a*b; } #包括 #包括 使用名称空间std; ifstream d(“d.txt”); 流r(“r.txt”); int plotas(int a、int b); int main() { INTP, A. N x1, x2, y1, y2, s s1; d>>p>>a; d>>n; 对于(int i=0;i>x1>>y1>>x2>>y2; s+=绘图((x2-x1),(y2-y1)); } s1=曲线图(p,a)-s; cout_C++ - Fatal编程技术网 >p>>a; d>>n; 对于(int i=0;i>x1>>y1>>x2>>y2; s+=绘图((x2-x1),(y2-y1)); } s1=曲线图(p,a)-s; cout,c++,C++" /> >p>>a; d>>n; 对于(int i=0;i>x1>>y1>>x2>>y2; s+=绘图((x2-x1),(y2-y1)); } s1=曲线图(p,a)-s; cout,c++,C++" />

变量在声明后具有值 我刚刚开始学习C++,我遇到了一个小问题。声明变量后,它们会被赋值 #include <iostream> #include <fstream> using namespace std; ifstream d ("d.txt"); ofstream r ("r.txt"); int plotas (int a, int b); int main() { int p, a, n, x1, x2, y1, y2, s, s1; d >> p >> a; d >> n; for(int i =0; i < n; i++){ d >> x1 >> y1 >> x2 >> y2; s+= plotas((x2-x1), (y2-y1)); } s1= plotas(p, a)- s; cout << s1; } int plotas (int a, int b){ return a*b; } #包括 #包括 使用名称空间std; ifstream d(“d.txt”); 流r(“r.txt”); int plotas(int a、int b); int main() { INTP, A. N x1, x2, y1, y2, s s1; d>>p>>a; d>>n; 对于(int i=0;i>x1>>y1>>x2>>y2; s+=绘图((x2-x1),(y2-y1)); } s1=曲线图(p,a)-s; cout

变量在声明后具有值 我刚刚开始学习C++,我遇到了一个小问题。声明变量后,它们会被赋值 #include <iostream> #include <fstream> using namespace std; ifstream d ("d.txt"); ofstream r ("r.txt"); int plotas (int a, int b); int main() { int p, a, n, x1, x2, y1, y2, s, s1; d >> p >> a; d >> n; for(int i =0; i < n; i++){ d >> x1 >> y1 >> x2 >> y2; s+= plotas((x2-x1), (y2-y1)); } s1= plotas(p, a)- s; cout << s1; } int plotas (int a, int b){ return a*b; } #包括 #包括 使用名称空间std; ifstream d(“d.txt”); 流r(“r.txt”); int plotas(int a、int b); int main() { INTP, A. N x1, x2, y1, y2, s s1; d>>p>>a; d>>n; 对于(int i=0;i>x1>>y1>>x2>>y2; s+=绘图((x2-x1),(y2-y1)); } s1=曲线图(p,a)-s; cout,c++,C++,未分配任何值的局部变量具有所谓的值(也称为垃圾值,它是以前存储在该内存位置(在c和c++中)的值),访问未初始化的变量会导致未定义的行为 如果不给它们赋值,它们将具有垃圾值 但是静态和全局变量的默认值为0 默认初始化在三种情况下执行: 1)当 具有自动、静态或线程本地存储持续时间的变量为 声明时没有初始值设定项 2) 当对象具有动态存储时 持续时间由不带初始值设定项的新表达式创建,或者 对象由新表达式创建,初始值设定项包括 一对空括号(直到C++03) 3) 当基类或 构造函数初始值设定项中未提

未分配任何值的局部变量具有所谓的值(也称为垃圾值,它是以前存储在该内存位置(在c和c++中)的值),访问未初始化的变量会导致未定义的行为

如果不给它们赋值,它们将具有垃圾值

但是
静态
和全局变量的默认值为0

默认初始化在三种情况下执行:

1)当 具有自动、静态或线程本地存储持续时间的变量为 声明时没有初始值设定项

2) 当对象具有动态存储时 持续时间由不带初始值设定项的新表达式创建,或者 对象由新表达式创建,初始值设定项包括 一对空括号(直到C++03)

3) 当基类或 构造函数初始值设定项中未提及非静态数据成员 然后调用该构造函数


默认初始化的效果是:

如果T是非POD(直到C++11)类类型,则将考虑构造函数,并对空 参数列表。所选构造函数(默认值之一) 调用构造函数)以提供新 反对

如果T是数组类型,则数组的每个元素都默认初始化

否则,什么也不做:具有自动存储持续时间的对象(及其子对象)被初始化为不确定 值。


访问未初始化的变量将导致错误。另外,请参阅


在执行加法赋值s+=plotas((x2-x1),(y2-y1))之前,需要初始化“s”。

只需初始化变量,以防止它们采用任何垃圾值:

int p=0, a=0,n=0,x1=0,x2=0,y1=0,y2=0,s=0,s1=0;

您还可以根据代码的需要将它们初始化为除
0
之外的任何
int

您的程序具有未定义的行为。除非您这样做,否则不会初始化本地原子(即非类)变量。因此,它们可能包含垃圾值,并且您通常会收到一些警告。零几乎不是“无值”。这绝对是一个值。请看Kerrek的评论。@jxh,我承认这是未定义的行为。但这是一般性的答案。OP会问为什么变量在声明后有一个值,这就是答案。我认为你的答案没有错,Arun,我投了赞成票accordingly@PoVa它可以是
int x=0;
,也可以是<代码>整数x(0);第二个必须在声明行中。为了挑剔,“垃圾值”的正确术语是不确定值。