みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

配列へのプラス?

C++のコードを読んでいるところなのですが、
配列に プラスされているコード部の意味がわからずこまっております。

*********************************
unsigned char data1[32];
unsigned char data2[8];

※ここでdata1, data2に値入力処理

if(memcmp(data1 + 2, data2, 8) != 0){
 //処理X
}
*********************************

上記のようなコードの「data1 + 2」の部分がよくわかりません。
byte配列にプラスされている2は、数値なのでしょうか??

C++は普段使わないもので、、、呆れるほどアホな質問だとしてもご了承ください。。
どなたかご教授ねがいます。
よろしくお願いいたします。

投稿日時 - 2010-01-07 17:11:45

QNo.5575045

すぐに回答ほしいです

質問者が選んだベストアンサー

C++というよりCのコードですね。
Cでは
data1 + 2

&data1[2]
と同じです。
要するにdata1[2]のアドレスを指定しているのです。

投稿日時 - 2010-01-07 17:16:20

お礼

早速のご回答ありがとうございます!
助かりました!

投稿日時 - 2010-01-07 19:24:40

ANo.1

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

>上記のようなコードの「data1 + 2」の部分がよくわかりません。
>byte配列にプラスされている2は、数値なのでしょうか??

配列名は、その配列の先頭要素のアドレスを示します。
+n の部分は、先頭要素からの距離を示す数値です。

したがって、data1+2は、配列data1の先頭要素から2要素分
進んだ場所のアドレスを示します。
つまり、&data1[2]と同じ意味です。

投稿日時 - 2010-01-07 17:38:35

お礼

ご回答ありがとうございます!
助かりました。

投稿日時 - 2010-01-07 19:23:53

あなたにオススメの質問