0

私が理解しようとしているのは次のとおりです。

最初の質問 - 変数 char *mystring を宣言したとしましょう。*mystring と &mystring と mystring の違いは何ですか?

2番目の質問 -

char* str = "Hello!";
MessageBox(NULL,str,str,NULL);

この関数で引数として使用されている str をどのように解釈できますか : それはポインターのアドレスですか、それとも文字列のアドレスですか?

4

4 に答える 4

1

これらの行の後:

int num;
int *pNum = #
  • pNumのアドレスであるポインタの値です。num
  • *pNum直接参照する逆参照ポインタですnum。つまり、*pNum = 3;代入3しますnum
  • &pNumポインタ自体のアドレスを取得するために使用できます

ここで、タイプの引数を取る関数があるとconst char*しましょうstrlen

char* str = "Hello!";
int len = strlen(str);

文字が格納されているメモリ (ちなみにこれは読み取り専用です) を指すcharnamedへのポインタを作成します。この文字のアドレスを関数に渡します。この関数は、 (ヌル終了文字)に達するまで続く文字のカウントを開始します。str'H'strlen(str)strlen'H''\0'

于 2013-10-04T21:50:32.673 に答える
0

最初の質問 - 変数 char *mystring を宣言したとしましょう。*mystring と &mystring と mystring の違いは何ですか?

char *mystring = "Hello!"; と仮定しています。

*mystringcahr文字列の最初のHello!、つまりH.
&mystrimgはポインタのアドレスですmystring
mystring文字列の最初の要素へのポインタですHello!

この関数で引数として使用されている str をどのように解釈できますか : それはポインターのアドレスですか、それとも文字列のアドレスですか?

strはポインタのアドレスではありませんが、関数に渡すと、指定された文字列の最初の要素へのポインタに減衰しますMessageBox

于 2013-10-04T21:50:01.243 に答える