第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

關(guān)于c++的一些變量定義問題

#include<iostream>

using namespace std;

int main(){

int a;

cin>>a;

? ?switch(a){

? ?case 1:

?for(int b=0;b<5;b++)

{ ?cout<<b;}

? break;

? ?case 2:

? cout<<"dsd";

? break;

}

?return 0;

}

我想問一下,為什么變量b在case 1:里面定義會編譯不同過的顯示

E:\c++\gf.cpp(13) : error C2360: initialization of 'b' is skipped by 'case' label

? ? ? ? E:\c++\gf.cpp(10) : see declaration of 'b'

而在switch語句外面定義是就可以通過


正在回答

1 回答

可以這樣寫! ?也許你的編譯器太老了,不能正確處理scope。


一般來說,不應(yīng)在switch的case中定義變量,但其實并不是完全不能定義變量,而是有一定的限制。?因為執(zhí)行流程可能會跳過某些case,這樣定義語句也就被跳過了,所以語法不允許跳過在同個作用域定義并初始化變量的語句,只有未初始化的聲明語句可以跳過。

但實際上case 1這個label中的for語句有獨立的作用域(C++11新增的特性),在其中定義并初始化b是允許的,所以這個代碼可以編譯通過。

2 回復(fù) 有任何疑惑可以回復(fù)我~
#1

onemoo

額,前面有誤。 for語句有獨立的作用域并不是C++11才引入的。
2015-10-28 回復(fù) 有任何疑惑可以回復(fù)我~
#2

慕神7194819 提問者

謝謝你,困擾我很久的問題終于解決了
2015-10-28 回復(fù) 有任何疑惑可以回復(fù)我~
#3

慕神7194819 提問者

太感謝了
2015-10-28 回復(fù) 有任何疑惑可以回復(fù)我~
#4

慕神7194819 提問者

非常感謝!
2015-12-09 回復(fù) 有任何疑惑可以回復(fù)我~
查看1條回復(fù)

舉報

0/150
提交
取消
C++遠征之離港篇
  • 參與學習       122681    人
  • 解答問題       488    個

C++掃清通往面向?qū)ο蟮淖詈笠坏勒系K,將所有知識點融會貫通

進入課程

關(guān)于c++的一些變量定義問題

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號