2016-12-27 9 views
-1

私は他の誰かのコードを見ていて、私が指さしたことだけがポインタであることを見ました。事は構文がポインタ構文ではないということです。これは次のコードです。一般的でない構文ですか? --- "" - > "

switch(control) 
    { 
     case 'w': 
     case 'a': 
     case 's': 
     case 'd': 
      execute->backup_grid();// this is the part I was talking about. 
      execute->fill_space(); 
      execute->update_grid(); 
      execute->fill_space(); 
      execute->find_greatest_tile(); 
      execute->display_grid(); 


      if(execute->full()&&apocalypse) 
      { 
       response=-1; 
       break; 
      } 
      else if(execute->block_moves()) 
      { 
       execute->spawn(); 
       break; 
      } 
      else 
      { 
       response=0; 
       break; 
      } 
+0

なぜこれがポインタ構文ではないと思いますか? – tkausl

+0

これはCの構文で、そのように見えますが、ポインタ構文がこれと異なるため、 ' - >' *は要素構文の正しいポインタ@LEXERA.EXE –

+0

です。しかし、基本的に私が言っていることは、これはポインタが正しい方法であるとは思わないということですか?それは私にそれがポインタではないと信じさせるでしょう。また、私が間違っていると、C++のポインタの使い方はどうですか?:int myPointer = 1; int * my2ndPointer =&myPointer –

答えて

0

これはポインタ構文の一種です。

struct foo { 
    int num ; 
}; 
struct foo var ; 
struct foo *ptr ; 
var.num = 0; 
ptr = &var; 
printf("%d ", ptr->num); // 0 
printf("%d ", (*ptr).num); //0 
本質的には

ptr->num 

が短い:あなたは構造体へのポインタを持っている場合は、プレーンCでは、あなたはこのように、「矢印」演算子とメンバーの値にアクセスすることができます方法の

(*ptr)->num 

あなたのコードでは、いくつかのオブジェクトへのポインタでメソッドを呼び出しています。

+0

ああ、ありがとう、私はそれを理解する。それは実際に私の心を吹き飛ばした! –

関連する問題