C言語の対象は、私はあなたが間違っているだろうと思います!あなたが知っている読んだ後、信じてはいけません!

皆さん、今日は私たちに良いC言語の質問を与えるために、この質問はあなたが理解し、習得するためにCの配列が良いのチェックです、と言ってあまり話をしなかった、質問を見て:

質問が出力されます何ですか?

       :私たちは、主に次の4つの分野に体内で見つかったコードを読み込むことで、まっすぐを取得し、配列名と配列名取アプリケーションが異なるアドレス;配列名の使用状況およびその他の変数にはsizeof;キャストメソッドポインタアクセスの配列を。

二つのことは、私たちがクリアする前に解決する必要があります。

       1は、 Cで、ほぼすべてのアレイで使用される式の、ポインタ配列名の値は一定であり、配列の最初のエレメントのアドレスです。その種類は、配列要素の種類によって異なります。彼らはint型である場合、配列の名前が入力し、「int型へのconstポインタ。」- 「Cおよびポインタ」

       図2は、以下の2つの場合に、配列の名前は、のsizeof演算子&単項演算子と操作の数ように、配列名でポインタのため一定ではありません。sizeofはなくポインタ配列の長さよりも、配列全体の長さを返します。生成された配列名のアドレスを取る配列へのポインタではなく、ポインタ定数へのポインタです。後に返さ&ポインタ種類([0]のポインタへのポインタ)が異なっていると、ポインタは、配列へのポインタです。- "Cとポインタ。"

この問題を解決します:

       1、&+ 1、全体アレイのアドレスを示し、この配列と同じサイズの空間、INT *はAの背後のint型配列にINTエレメントアドレス、P点にキャストした移動を示します要素。

       図2に示すように、(1-P)* P-1のアドレスがp値によって指し示さ最初間接参照を表す* pが配列a、5の最後の要素は非常にバイト数は、再び逆参照後方int型を移動表しますマイナス1は、この値は未定義です。

       。3、配列全体のバイト数を与えるためにはsizeof(配列名)、すなわち、5×4 = 20;アドレスの多くとしてはsizeof(アレイアドレス)8に、64ビットバイト。

       図4は、この質問の答えは、未定義、20,8 5です。

まあ、我々はあなたが理解し、およそここで話をしましたか?読むために忍耐をありがとうございました!

プログラミングを愛する人のために、小さな学習パートナーのグループと一緒にその答えは非常に重要です!私はプログラミングのゼロベースの交換クラブ(学ぶために始めているグループ)だけでなく、学習のビデオファイルを、歓迎初心者をしているし、少しの友人に前進します!

 

公開された520元の記事 ウォンの賞賛132 ・は 80000 +を見て

おすすめ

転載: blog.csdn.net/HUYA69/article/details/105222330