c - 为什么只在声明后才为变量赋值
问题描述
我知道肯定有重复,但我什么也没找到。在 C 语言中,我看到很多代码示例,其中作者只在变量声明后赋值,这样做有充分的理由吗?
int main(void)
{
int x; // declare "x"
x = 5; // assign 5 to "x"
return 66;
}
这与仅在一行中声明和分配值有什么不同?
int main(void)
{
int x = 5; // declare "x" and assign in the same line
return 66;
}
解决方案
这些天主要是风格问题。在许多情况下,在变量第一次使用时为变量赋值更不容易出错,并且可能尽可能接近第一次使用时。
另一方面,我当然也见过这样的情况,即当算法没有点缀引入新变量的语句时,它更容易理解。在算法主体之前收集所有这些语句可以使算法本身适合单个页面/屏幕。
在这样的结构中为变量分配初始值似乎毫无意义:
int foo;
if (bar == 42)
foo = 1;
else
foo = -1;
推荐阅读
- cmake - 问题是什么,当我构建 ROS hector 导航时
- python - Flask-SQLAlchemy:未定义名称“func”
- excel - 将范围更改为指定单元格
- amazon-web-services - Amazon Ec2 实例无法启动 jenkins 服务器 8080 端口
- vue.js - 如何在 vue.js 中将多个图像作为数组上传?
- android - 需要将frescoimageviewer库添加到android项目
- fortran - FORTRAN 77 中的过度索引可以修改程序本身吗?
- javascript - 多次添加课程时仅删除一次课程
- c - 我对函数“声明不兼容”和“不同的基本类型”的声明有一个小问题
- laravel - Livewire - 数组作为查询字符串