官术网_书友最值得收藏!

2.2 局部變量聲明

在C語言中,局部變量應該在函數的可執行語句之前定義;但在C++中,變量可在任何語句位置定義,只要允許出現程序語句的地方,都允許定義變量。程序Eg2-1.cpp在C語言中是錯誤的,原因是變量定義語句L3出現在了可執行語句L2的后面。但此程序在C++中卻是正確的。

例2-1】 下面的程序在C語言中存在編譯問題,但在C++中是正確的。

//Eg2-1.cpp
void main(){
    int x;    //L1
    x=9;     //L2
    int y;    //L3
    y=x+1;    //L4
}

另外,C++允許在for循環語句中定義變量。

例2-2】 在C++中,在for循環的測試語句中定義變量。

//Eg2-2.cpp
#include<iostream.h>
void main(){
    int n=1;
    for(int i=1;i<=10;i++){
        int k;
        n=n*i;
        k=i;
    }             //i(在C++語言規范中,i的作用域到此就結束了。但某些編譯器(如Visual C++ 6.0)擴大了for循環中定義變量的作用域,其有效范圍擴展到了定義該變量的for循環后面的“}”,這里就屬于這種情況。本程序在Visual C++ .NET中不能通過編譯,原因是cout訪問的i已失去了作用域。),k的作用域至此結束
    cout<<n<<i<<endl;  //i在此的值是11
}             //n,i的作用域到此結束

在C++中,變量在包含定義它的最近一對{ }內有效,稱為塊作用域。因此,上面程序中的n在整個main()函數內有效,而i和k僅在for循環體內有效。

主站蜘蛛池模板: 前郭尔| 家居| 高邮市| 永宁县| 井冈山市| 武城县| 丹巴县| 哈巴河县| 赣榆县| 宜黄县| 临颍县| 清新县| 广南县| 灵武市| SHOW| 鄂伦春自治旗| 卢龙县| 大厂| 甘肃省| 精河县| 泾阳县| 西昌市| 青海省| 新民市| 永德县| 榆树市| 南岸区| 焦作市| 江安县| 什邡市| 砀山县| 井陉县| 新泰市| 牟定县| 山阴县| 营山县| 南投县| 中宁县| 基隆市| 湘西| 台东市|