0

重複の可能性:
Objective Cの「->」とは何ですか?

ここで初心者の質問。このイントロをObjectiveCランタイム(http://mikeash.com/pyblog/friday-qa-2009-03-13-intro-to-the-objective-c-runtime.html)に目を通すと、このファンキーがわかります。 ->を使用した構文。それが何を意味するのかについての説明を見つけることができないようです。

簡単なポイントは誰ですか?

ありがとう!

4

1 に答える 1

4

これは実際にはC構文です。構造体へのポインタのフィールド(変数)にアクセスするために使用されます。

ポインターがある場合は、*構文を使用して間接参照する必要があります。

int var = 1;   // regular int variable
int *ptr = &var;  // pointer to that variable
int sum = (*ptr) + 3;   // if you want to use it regularly, you have to dereference it first.

さて、このポインタがたまたま構造体ポインタである場合、それは醜くなる可能性があります。

// Define and typedef a struct.
typedef struct {
    int num1;
    int num2; 
} MyStruct;

MyStruct myStruct = (MyStruct){1, 2};   // Regular struct.
MyStruct *pointer = &myStruct;          // Pointer to that struct.
int sum = (*pointer).num1 + (*pointer).num2;   // The ugly part.
int niceSum = pointer->num1 + pointer->num2;   // Same thing with cleaner code.
于 2012-09-12T23:16:07.367 に答える