分配递增变量

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;