a++和a+1有什么区别
What is the difference between a++ and a+1?
我正在编写一小段代码,其中如果条件匹配,我必须递增变量"j"的值。
for(int i=0;i<input.length();i++){//input and base are of type string
for(int j=0;j<base.length();j++){
if(input[i]==base[j])input[i]=base[j+1];
}
}
cout<<input;
当我执行代码时,对于每个输入,我都会得到一个空白字符串作为输出。但是如果我使用 ++j 而不是 j+1,代码似乎工作正常。我在这里错过了什么?此外,j-1 和 --j 的代码工作正常。我面临的唯一问题是j+1。它与运算符的优先级有关吗?
与这些表达式相关的两个区别:表达式的值是什么以及a
是否会更改。对于表达式
a + 1
它的值是操作数的总和 a
和 1
并且a
本身不会更改。
对于表达式
a++
其值是增量之前的a
值,a
将被更改。例如,如果按以下方式定义a
int a = 0;
还有另一个变量b
定义如下
int b;
然后在语句之后
b = a++
b
将等于 0
,a
将等于 1。
b = a + 1;
b
将等于1
,a
不会改变,即它将像以前一样等于0
。
如果你的意思是表达
a += 1;
那么如果事实它与表达式a + 1
具有相同的结果,只是 a 将被更改。
请注意,相对于表达式中的其他子表达式,a++
是未排序的。
表达
a += 1;
类似于表达式
++a;
所以a++
和a += 1
之间的区别与a++
和++a
之间的区别相同。还要考虑到a++
的结果是rvalue
的(您不能为表达式分配任何值(,而a += 1
的结果是lvalue
的(您可以像( a += 1 ) += 1;
一样为表达式赋值(
#include <iostream>
using namespace std;
int main ()
{
int a=10,b=10;
cout<<"a++ is n "<<a++;
cout<<"n++b isn "<<++b;
}
输出:
"a++ is
10
"++b is
11
j++;
是j = j + 1。它是后递增运算符。j的值将在表达式的其他操作完成后增加。
j+1
,是你在 j 的值上加 1,但它不会影响 j 的值。
相关文章:
- 向量 <int> a {N, 0} 和 int arr a[N] = {0} 的时间复杂度有什么区别
- 在 .h 文件中的类中声明静态变量和在.cpp文件中声明"global"变量有什么区别
- 我是C++编程的新手,这些代码之间有什么区别,我应该使用哪一个
- 返回常量对象引用 (getter) 和仅返回字符串有什么区别?
- Qt:remove() 和 rmdir() 有什么区别
- 这 4 个 lambda 表达式之间有什么区别?
- 将向量作为类>(值)<向量启动和向量<类>[值]有什么区别
- typedef 枚举和枚举类有什么区别?
- &C::c 和 &(C::c) 有什么区别?
- ascii 和 unicode 在处理级别有什么区别吗?
- C 中的常量限定符和 C++ 中的常量限定符有什么区别?
- "ABC" 和 "ABC" ) 在C++中有什么区别?
- 空指针常量 (nullptr)、空指针值和空成员指针值之间有什么区别?
- 引用捕获和在 lambda 中通过引用发送参数有什么区别 (C++)
- 两种访问I2C总线的方法有什么区别?
- 两种模板示例有什么区别?
- 这两种C++语法之间有什么区别?
- lua 5.0.2 模块和 5.3.5 有什么区别?
- C++中"typedef"、"using"、"namespace"和"using namespace"有什么区别?
- std::enable_if 和 std::enable_if_t 有什么区别?