1. 程式人生 > >c語言基礎之指針、數組和結構體

c語言基礎之指針、數組和結構體

sizeof 12px 不為 auto 思維方式 中介 -c struct 數據結構

指針是c語言的靈魂怎麽強調都不為過,指針也是c語言最復雜和難理解的概念,數組是多個類型相同的變量在一塊連續的內存空間,數組是最基本也算是最簡單的數據結構,結構體本質上就像是一個包裹,包含了一個或多個類型的變量,結構體就像面向對像的類一樣給我們提供了一個抽象的思維方式。 該怎樣去理解指針呢,這裏破磚引玉說一下我的看法,學習一個新東西的時候可以在腦子裏想像一個和生活中比較相似的概念或物體等,比如類型系統裏不同的類型會占用不同長度的內存一樣,可以把類型系統想像成生活中常見的長度單位毫米、厘米,這樣可能會更容易理解一些,指針可以看成是一塊內存的標識通過指針可以修改它標識的內存數據,就像人在生活中通過樓號加單元號和房間號找到房間一樣。

指針的定義

char *p;
int *p;
double *p;

上面定義的指針就好像生活中我們只知道人名卻沒見過的本人情況,由於指針p還不知道它是哪塊內存的標識所以是不能對它進行操作的。

char a = 10;
char *p = &a;
或
int *p = (int *)malloc(sizeof(int) * 100);

上面都是在告訴指針p它標識的是哪塊內存,就像生活中介紹這個人叫張三。

數組的定義

char arr[10];
int arr[10];
double arr[10];

結構體的定義

///定義一個小狗的結構體
struct dog {
    char age;
    char sex;
    int color;
    char name[32];     
};
struct dog dogs[10];///小狗的數組
struct dog *p = (struct dog *)malloc(sizeof(struct dog));///指針

後續C語言實戰部分再回頭來詳細說明


c語言基礎之指針、數組和結構體