文字列の配列のアドレス指定に関連する特定のトピックに関する説明を探しています。関連する問題がいくつかあるようですが、私の質問について議論した問題を見つけることができませんでした。これが以前に尋ねられた場合は、関連するスレッドを教えてください。
以下のコード スニペット (printf ステートメントを確認してください) では、同じ変数を使用して、メモリ ロケーションの値とメモリ ロケーションのアドレスにアクセスしています。これがこのコードの書き方であるかどうかはよくわかりません。アドレスまたは値にアクセスしているかどうかを明確に示すより良い方法はありますか?
char *board[NUM_MAX_ROWS] = {"0101001",
"1101011"};
int main()
{
int i, num_rows=0, num_cols=0;
num_cols = strlen(board[0]);
num_rows = ARR_SIZE(board);
for (i=0; i<num_rows; i++)
printf("%s stored at %p\n", board[i], board[i]);
}
私の最初の試みはこのように見えました
while(*board != '\0')
{
printf("%s stored ar %p\n", *board, board);
board++;
}
明らかにこれは機能しません:)しかし、これがコンパイラによってどのように解釈されるかについてはまだよくわかりません。
ありがとう。