您的位置:首页 > 编程语言 > C语言/C++

几点注意事项C++

2017-03-25 22:15 316 查看
1

    int b[] = { 0 };

    cout << sizeof(b) << endl;

    int i = 9;

    for (i = 0; i <= 5; i++)

    {

        b[i] = i;

        cout << b[i] << endl;

    }

    cout << sizeof(b) << endl;

    cout << i << endl;

------------------------------------------------

    int b[] = { 0 };

    cout << sizeof(b) << endl;

    int i = 9;

    for (int i = 0; i <= 5; i++)

    {

        b[i] = i;

        cout << b[i] << endl;

    }

    cout << sizeof(b) << endl;

    cout << i << endl;

1) 开始数组b  int b[] = { 0 };已经确定变为一个int元素的数组,所以sizeof(b)为1*4为4个字节;虽然后面for循环将b数组元素扩充为6个,但是这种程序最好不要出现,因为一开始给数组分配内存为1个元素4个字节,后面for循环实际上超出了b数组的内存范围,导致溢出。后面的sizeof(b)依然为1*4为4个字节。

2)《变量的作用域是看变量定义在什么地方,而不是看用在什么地方》

第一段程序for循环里面的i在循环外面已经定义,所以循环用的i跟外面i是一个变量,最终    cout << i << endl;输出i为6,因为for循环改变了i的数值;

但是第二段程序     for (int i = 0; i <= 5; i++) 将i在内部定义,那么这个i跟外部的i不是一个变量,for循环内部i作用域只限于for循环内部,不影响外部i为9的数值,i输出还是i=9,不因为循环而改变!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: