Pre vs Post Increment
Pre vs Post Increment
我得到了预先增量和帖子的基础,但是在实际发生在帖子上时,我的头脑将其包裹起来。
例如,在以下文章增量代码中:
int counter = 10;
int result = 0;
result = counter++ + 10;
cout << "Counter: " << counter << endl;
cout << "Result: " << result << endl;
我了解计数器将以11的形式出现,并在20时结果。结果在20时出现,因为整个功能正在运行,然后然后在程序转到程序时添加 1返回0;?
何时添加 1?
谢谢
何时添加 1?
根据标准:
在修改操作数对象之前,对 表达式的值计算进行了测序。
从外行的角度来看:
-
counter
的计算是测序的,它可以是该语句的整个RH的一部分,也可以是术语counter++
。 - 在程序中的下一个语句进行测序之前,对
counter += 1
的计算进行了测序。
有两件事要牢记。
- 术语的值 - 它在表达式中评估的内容。
- 术语评估的副作用。
对于counter++
:
该术语的值是counter
的值。
评估该术语的副作用是增加counter
的值。
也为了更好地理解您可以考虑这些宽松描述的示例:
- 想想
the_type
的the_object
pre 作为这样的函数:
the_object = the_object + 1;
return the_object;
- 现在想想 post -
the_type
的the_object
increment作为这样的函数:
the_type backup_of_the_object;
backup_of_the_object = the_object;
the_object = the_object + 1;
return backup_of_the_object;
现在考虑:
result = counter++ + 10;
编译程序时:
- 编译器在行的开头看到
result =
,所以应首先确定=
右侧放置的内容然后产生机器代码将其分配到=
是result
。 - 编译器看到
counter
,但该语句尚未结束因为尚未达到;
。所以现在知道它还必须使用counter
。 编译器看到
++
,但该语句尚未结束。现在知道它必须考虑生成机器代码以执行counter++
首先。编译器看到
+
。所以现在知道它必须考虑生产机器代码以添加+
的右侧和+
的左侧,即counter++
。编译器看到
10;
,最后该语句已经结束。所以现在它知道需要知道的一切!它知道生产后执行counter++
的机器代码,应产生机器代码将10添加到 atumcome_of IT中。然后应该生产机器代码以分配 atumcome_ofresult
。
程序运行时:
- CPU应该执行
counter++
现在counter
增加了1个,因此是 11 ,但是 atumcome_of ( counter++
(是counter
的先前值,是 10
- CPU应该执行 atumcy_of (
counter++
( 10
现在 atumcome_of ( atumcome_of ( counter++
( 10(是/em> (10 10(, 20
- CPU应该执行
result =
atumcome_of ( atumecon_of (counter++
( 10(
现在result
是 20
另外,请注意,所描述的每个阶段仅大于
result = counter++ + 10;
不管以后会发生什么。
cout << "Counter: " << counter << endl;
cout << "Result: " << result << endl;
很明显main()
返回0。
我认为,您应该放松一下,并通过编写和运行一些程序通过经验来学习它!
祝你好运!
inf increment Operator:完全使用后递增的表达式后,使用后启动操作员来递增变量的值。在收入后,值首先在表达式中使用,然后递增。
所以在您的情况下
result = counter++ + 10;
在此语句中使用后进行了增量,显然它反映在下一个语句中。
- 集合上的输出迭代器:assign和increment迭代器
- 如何使用curlpp通过POST方法上传文件和json数据
- 使用libcurl提交批量url的正确BING Api POST url是什么
- 命名空间 pqxx 无法识别 - 将 libpqxx 添加到 Windows 上的 Visual Studio Post
- 如何使用boost/beast从HTTP POST请求中解析和提取有效负载?
- 如何使用 curl 将 POST 请求从 python 重写为 C++
- 从简单的 POST 请求中解析异常
- Visual Studio 2017 中的 cpprestapi 问题找不到 POST/GET 常量
- 使用 cpp-httplib 的 POST 请求
- POST Arduino 传感器值通过 Flask API 发送到本地 Sqlite db
- C++:如何通过 curl 调用使用 HTTP post 请求发送二进制数据(protobuf 数据)
- C++中的 cURL POST 请求
- C++ Schannel POST 400 错误代码错误请求
- c++curl返回413请求实体过大,但是post大小远小于max大小
- HTTP POST 请求不允许我定义上下文类型
- 如何在c++中使用libcurl发送POST请求并接收它
- cpp libcurl 在 HTTP post 调用中发送 zip 文件,而不使用 multipart\form-da
- 使用 http post 在 FCM 中推送通知
- Pre vs Post Increment
- 如何在C++中实现输入迭代器的"dereference and post-increment"?