C++ 当定义变量的逗号与for语句条件初始化的逗号相遇时

程序如下:

#include <iostream>

using std::cout;
using std::endl;

int main(int argc, char** argv)
{
    int i = 0, j = 2;

    for (int z = 2, i = j;z == 2;z++)
      cout << "i: " << i << endl;
    cout << "i: " << i << endl;
}

输出

i: 2
i: 0

分析:

在for语句第一个分号前面是初始化语句,多条初始化语句用都逗号隔开,在定义同个类型的多个变量时也用逗号隔开不同的变量,那么在两种情况重叠时,结果是什么样的呢。

若按上面格式

for (int z = 2, i = j;z == 2;z++)

此时有两种猜想:

1、i为新申请的,只在for语句中有效的,语句块局部变量,用main函数中的j变量初始化它,此时它将屏蔽main函数中的i变量。

2、i为main函数中i,此处将main函数中变量j的值赋给i,main函数中的i值改变了。

这两种猜想都有根据,但是根据程序的输出,此时i被认为是一个新申请的语句块局部变量。

它屏蔽了main函数中的i,此时main函数中的i,其值不变。等for语句运行结束后,main函数中的i,还是之前的值。

时间: 2024-08-12 04:12:57

C++ 当定义变量的逗号与for语句条件初始化的逗号相遇时的相关文章

.net开发环境的认识,控制台程序的创建,输出,输入,定义变量,变量赋值,值覆盖,值拼接,值打印 两种数据类型,整形类型转换

首先感谢向立凯老师带我走进.net这个很好的软件开发程序.通过两天的学习在这个领域的了解也多了很多,让大家先了解一下c#语言 c#是一种全新且简单.安全.快捷面向对象的程序设计语言.是专门为.net应用开发的语言..net的开发都基于一个统一的开发环境 Visual Studio.net.下面我们来看看怎么在Visual Studio.net.下创建以新的项目: 1.打开 2.新建一个项目 通过执行文件-新建-项目菜单命令,会弹出一个新建项目对话框.在这个对话框中选择开发语言为c#,选择框架版本

JS 定义变量

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title></title> 6 </head> 7 <body> 8 <script type="text/javascript"> 9 // 定义变量 10 // 语法:使用 var 关键字 11 // 变量申明关键字 变量名 赋

【UiBot基础教程】变量与常量 - 定义变量以及变量类型

UiBot中的变量是动态类型的,无需再定义的时候声明变量的类型,即变量的值和类型都可以在运行过程中动态改变.这也符合一般脚本语言如Python.Lua.JavaScript的习惯. 定义变量名的方式是:Dim 变量名再定义变量名的同时可以给变量赋值一个初始值:Dim 变量名 = 值想要定义多个变量的话,可以这样定义:Dim 变量名=值, 变量名1Dim 变量名=值, 变量名=值同理,想要定义一个常量就可以这样定义:Const 常量名=值, 常量名=值 变量名的定义基础规范:变量名可以用英文字母.

【2017-2-17】C#基础-定义变量,输入输出

主要学习内容为: 控制台程序的创建,输出,输入,定义变量,变量赋值,值覆盖,值拼接,值打印两种数据类型,整型类型转换 编程语言文件名后缀为.cs 创建程序项目的步骤: 文件--新建--项目--Visual C#--.Net Framework 4--控制台应用程序--设置名称和位置--确定 解决方案资源管理器可以设置编写或启动某个项目 main函数中编写代码 打印内容: //往外输出内容的Console.WriteLine("输出的内容");    换行Console.Write(&q

JAVA变量的类型,定义变量

JAVA中常用的数据类型 数据类型 数据类型解释 说明 char 字符型 用于存储单个字符,如:性别“男”.“女”,电灯“开”.“关” int 整形 用于存储整数,如一天的时间是24小时,一月份是31天 double 双精度 用于存储小树,如蒙牛早餐奶的价格是1.3元,手机待机时间是6.5小时 String 字符串 用于存储一串字符,如“我的爱好是踢足球”,“我喜欢Java程序” 定义变量 public class Test{ public static void main(String[] a

2017-2-17 c#基础学习 (控制台程序的创建,输出,输入,定义变量,变量赋值,值覆盖,值拼接,值打印)

1 控制台程序的创建 > 新建项目  ,选择 c#,  框架选择4.0 , 选择控制应用台程序, 选择文件保存位置 修改名字. 2 c#输出与输入 >在main函数中编写代码 >在编写时可以先插入Console.ReadLine();防止程序闪退 > Console.Write("实例语句");//不换行输出 Console.WriteLine("示例语句");//换行输出 Console.ReadLine();//等待用户输入 防止闪退 结

第一天,数据的输入与输出,定义变量&#183;&#183;&#183;

初步应用vs2012这软件,语言选择c#   , 框架选择4(不要选择最前和太后的框架)然后改个名字和保存路径点确定就行了. 在main函数中写代码,大括号里面. 首先是最基本的输入与输出:  Console.WriteLine(");//直接会输出引号里面的内容(如果直接写入Write的话就不会换行.) Console.ReadLine();//让用户随意输入内容,按回车键结束,也可以用来防止程序闪退. 基本应用: Console.WriteLine("键盘敲烂,月入百万"

【2017-2-17】VS基本应用及C#基础第一节(定义变量、输入及输出)

一VS基本应用 (一)新建项目 新建项目可有多种方法例如: 1.  在VS起始页面建立新项目 2.  在集成环境中,通过"文件"/"新建"/"项目",出现新建项目对话框,在其中选择C#-控制台应用程序-框架Framework4,完成新建 3.  在已打开项目中,在解决方案管理器中右键/添加/新建项目 (二)基本应用 1.在工具/选项/环境/常规中可设置主题,字体和颜色可设置项目中的代码字体颜色 2.在文本编辑器/C#中可设置行号 二C#基础 新建

2017-2-17,c#基础,输入输出,定义变量,变量赋值,int.Parse的基础理解,在本的初学者也能看懂(未完待续)

计算机是死板的固定的,人是活跃的开放的,初学c#第一天给我的感觉就是:用人活跃开放式的思维去与呆萌的计算机沟通,摸清脾气,有利于双方深入合作,这也是今晚的教训,细心,仔细,大胆 c#基础 1.Hello!World!!! 1 { //输出Hello!World!!; 2 Console.WriteLine("Hello!World!!!"); 3 //防止闪退; 4 Console.ReadLine(); 5 6 } 踏入IT世界的第一步,向世界问好 2.string定义变量 套用向老