2021.1.17-ポインターと構造の予備的理解

ポインターの予備的理解

int main()
{
        int a = 0;
        int* p= &a;
        printf("%d",*p);
        return 0;
}

ポインターとの最初の接触は、以前聞いたほどひどい感じではなく、肌に触れたばかりなのかもしれませんが、今後はもっと深いところに触れたときに感じますので、頑張ってください。
まず、上記のコードの意味を知る必要があります。inta= 0は、明らかに整数変数aに「0」を割り当てるプロセスです。pは、アドレスを格納するために使用されるポインター変数であることを理解する必要があります。変数。
pは、pが指すアドレスの内容を検索することです

。a (&a)のアドレスを格納するp変数は、pがポインター変数であることを示し、intは、pが指すアドレスの内容が整数型の
ポインター変数であることを示します。アドレスの長さは、それが指すものに基づいていません。コンテンツの種類によって決まりますが、コンパイル環境では、32ビットは4バイト、64ビット環境は8バイトです。

構造の予備的理解
コードが実世界を構築する方法であることは誰もが知っていますが、実世界のエンティティは単一の属性ではなく、すべてのエンティティは複雑なオブジェクトです。たとえば、人を説明する場合、名前、身長、年齢、ID番号の情報が必要です。現時点では、これを実現するために単純に配列や定義を使用することはできません。構造を使用して、入力してください。
指示:

struct Book //创造一个结构体类型
{
   char name[20];
   short price;
}

このように、Bookタイプは単純に構築され、関数で使用する場合は、使用する前に変数を定義する必要があります。structBook book1 = {"C言語の予備理解"、55};
このように、本は「C言語」であると説明しました。予備的理解」と55元の本の価格が定義されています。
では、本のタイトルだけを知りたい場合はどうでしょうか。
最初のメソッド
は、この時点で演算子「。」を使用します。このとき、book1のメンバーにアクセスできます。名前メンバー:book.name;価格メンバー:book.price;
2番目のメソッド
はbook1用に作成されます。ポインタを入力し、演算子「->」を使用して完了します。構造ポインタ変数->メンバー名を使用します。注:book1の作成に使用されるポインタータイプはstruct Book *です。

構造を変更する方法
構造メンバーの整数変数を変更するときは、値を直接割り当てて前の値を上書きできます
。intbook1.price= 36;それだけです。
構造メンバーの文字列タイプを変更するときは、それを使用する必要があります。関数strcpy()は、ヘッダーファイルstring.hが導入されている場合にのみ使用できます。
使用方法:strcpy(book1.name、 "C ++");

さて、2021年1月17日にこの小さな知識を学びましたが、私のような初心者には十分だと思います!

おすすめ

転載: blog.51cto.com/15083094/2593907