分配递增变量
Assigning an incremented variable
PORTB = pattern ++;
//The author explains te upper code with the code below
pattern = pattern + 1;
PORTB = pattern;
PORTB = ++ pattern; //That's what I think is right
我认为这段代码是错误的,因为post-增量应该加1,在语句中使用它之后,所以对于下面的代码,必须有一个前置增量e。但是因为我对c/c++不太熟悉(只看过一本书),我想知道是我搞砸了什么,还是作者错了。
编辑:这本书不是关于 c/c++,而是关于 arduino。
你是对的
PORTB = pattern++;
等同于
PORTB = pattern;
pattern = pattern + 1;
前缀形式[--,++]a
做动作(递增或递减),然后使用结果
例如:
int a[] = {0,1,2};
int i = -1;
std::cout<< a[++i] << ' ';
std::cout<< a[++i] << ' ';
std::cout<< a[++i] << std::endl;
等价形式
int a[] = {0,1,2};
int i = -1;
for(int j =0; j < 3; j = j + 1) {
i = i + 1; // action first
std::cout<< a[i] << ' ';
}
std::cout<< std::endl;
后缀形式a[++,--]
按原样使用值,然后递增或递减变量
例如:
int a[] = {0,1,2};
int i = 0;
std::cout<< a[i++] << ' ';
std::cout<< a[i++] << ' ';
std::cout<< a[i] << std::endl;
等价形式
int a[] = {0,1,2};
int i = 0;
for(int j =0; j < 3; j = j + 1) {
std::cout<< a[i] << ' ';
i = i + 1; // action after
}
std::cout<< std::endl;
PORTB = pattern ++;
//The author explains te upper code with the code below
pattern = pattern + 1;
PORTB = pattern;
PORTB = ++ pattern; //That's what I think is right
我认为这段代码是错误的,因为post-增量应该加1,在语句中使用它之后,所以对于下面的代码,必须有一个前置增量e。但是因为我对c/c++不太熟悉(只看过一本书),我想知道是我搞砸了什么,还是作者错了。
编辑:这本书不是关于 c/c++,而是关于 arduino。
你是对的
PORTB = pattern++;
等同于
PORTB = pattern;
pattern = pattern + 1;
前缀形式[--,++]a
做动作(递增或递减),然后使用结果
例如:
int a[] = {0,1,2};
int i = -1;
std::cout<< a[++i] << ' ';
std::cout<< a[++i] << ' ';
std::cout<< a[++i] << std::endl;
等价形式
int a[] = {0,1,2};
int i = -1;
for(int j =0; j < 3; j = j + 1) {
i = i + 1; // action first
std::cout<< a[i] << ' ';
}
std::cout<< std::endl;
后缀形式a[++,--]
按原样使用值,然后递增或递减变量
例如:
int a[] = {0,1,2};
int i = 0;
std::cout<< a[i++] << ' ';
std::cout<< a[i++] << ' ';
std::cout<< a[i] << std::endl;
等价形式
int a[] = {0,1,2};
int i = 0;
for(int j =0; j < 3; j = j + 1) {
std::cout<< a[i] << ' ';
i = i + 1; // action after
}
std::cout<< std::endl;