C++这里的变量初始化有没有必要?
C++这里的变量初始化有没有必要?doublefish_count=0.0;//Numberoffishdoublefish_length=0.0;//Averagele...
C++这里的变量初始化有没有必要?
double fish_count = 0.0; // Number of fish
double fish_length = 0.0; // Average length of fish
书上说“这两个变量没有必要初始化它们,但是最好还是初始化。”这是为什么呢?请告诉我原因?
// Program 2.6 Sizing a pond for happy fish
#include <iostream>
#include <cmath> // For square root calculation
using std::cout;
using std::cin;
using std::sqrt;
int main() {
const double fish_factor = 2.0/0.5; // Area per unit length of fish
const double inches_per_foot = 12.0;
const double pi = 3.14159265;
double fish_count = 0.0; // Number of fish
double fish_length = 0.0; // Average length of fish
cout << "Enter the number of fish you want to keep: ";
cin >> fish_count;
cout << "Enter the average fish length in inches: ";
cin >> fish_length;
fish_length = fish_length/inches_per_foot; // Convert to feet
// Calculate the required surface area
double pond_area = fish_count * fish_length * fish_factor;
// Calculate the pond diameter from the area
double pond_diameter = 2.0 * sqrt(pond_area/pi);
cout << "\nPond diameter required for " << fish_count << " fish is "
<< pond_diameter << " feet.\n";
return 0;
} 展开
double fish_count = 0.0; // Number of fish
double fish_length = 0.0; // Average length of fish
书上说“这两个变量没有必要初始化它们,但是最好还是初始化。”这是为什么呢?请告诉我原因?
// Program 2.6 Sizing a pond for happy fish
#include <iostream>
#include <cmath> // For square root calculation
using std::cout;
using std::cin;
using std::sqrt;
int main() {
const double fish_factor = 2.0/0.5; // Area per unit length of fish
const double inches_per_foot = 12.0;
const double pi = 3.14159265;
double fish_count = 0.0; // Number of fish
double fish_length = 0.0; // Average length of fish
cout << "Enter the number of fish you want to keep: ";
cin >> fish_count;
cout << "Enter the average fish length in inches: ";
cin >> fish_length;
fish_length = fish_length/inches_per_foot; // Convert to feet
// Calculate the required surface area
double pond_area = fish_count * fish_length * fish_factor;
// Calculate the pond diameter from the area
double pond_diameter = 2.0 * sqrt(pond_area/pi);
cout << "\nPond diameter required for " << fish_count << " fish is "
<< pond_diameter << " feet.\n";
return 0;
} 展开
4个回答
展开全部
如果不给数值型变量赋值的话,系统会随机分配乱值(不信的话,可以试试。只定义,不赋值,然后输出,输出结果看看就知道了)。而在本程序中,为了得出结果肯定会给它赋值,所以不管它以前是什么乱值都无所谓了。
但是,在一般较复杂的程序中,都会给用到的量进行初始化。这是一个习惯。
但是,在一般较复杂的程序中,都会给用到的量进行初始化。这是一个习惯。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
变量的初始化不是一个规则,而是一个建议,比如第一次使用时该变量时它是当作右值使用的(就是在等号的右边),那整个表达式的值可能就是意外的,这种情况下初始化是必须的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
此段代码可以不初始化,因为这两个变量的初始值是外部输入的。如果这两个变量的值是直接计算使用,就不能假设它们为0。为了养成一个好的习惯还是先初始化比较安全
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是没有必要初始化,但是在复杂的运算时初始化会节省时间
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询