声明语句、复合语句、语句作用域

声明语句

在 C++ 中,对象或类的定义或声明也是语句。尽管定义语句这种说法也许更准确些,但定义语句经常被称为声明语句。

复合语句(块)

复合语句,通常被称为块,是用一对花括号括起来的语句序列(也可能是空的)。块标识了一个作用域,在块中引入的名字只能在该块内部或嵌套在块中的子块里访问。通常,一个名字只从其定义处到该块的结尾这段范围内可见。

复合语句用在语法规则要求使用单个语句但程序逻辑却需要不止一个语句的地方。例如,while 或 for 语句的循环体必须是单个语句。然而,大多数情况都需要在循环体里执行多个语句。因而可使用一对花括号将语句序列括起来,使其成为块语句。

像空语句一样, 程序员也可以定义空块, 用一对内部没有语句的花括号实现:

while (cin >> s && s != sought)
{ } // empty block

语句作用域

有些语句允许在它们的控制结构中定义变量:

while (int i = get_num())
cout << i << endl;
i = 0; // error: i is not accessible outside the loop

在条件表达式中定义的变量必须初始化,该条件检验的就是初始化对象的值。

// index is visible only within the for statement
for (vector<int>::size_type index = 0;
index != vec.size(); ++index)
{ // new scope, nested within the scope of this for statement
int square = 0;
if (index % 2) // ok: index is in scope
square = index * index;
vec[index] = square;
}
if (index != vec.size()) // error: index is not visible here

如果程序需要访问某个控制结构中的变量,那么这个变量必须在控制语句外部定义。

vector<int>::size_type index = 0;
for ( /* empty */ ; index != vec.size(); ++index)
// as before
if (index != vec.size()) // ok: now index is in scope
// as before

转载于:https://www.cnblogs.com/xiaojianliu/articles/8972415.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值