2021.1.17——指針和結構體的初步認識

指針的初步認識

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

初步接觸指針,感覺並沒有之前聽說的那麼恐怖,可能只是我剛剛接觸皮毛而已,以後接觸到深層次的東西纔會感覺到,加倍努力吧。
首先我們要知道上述代碼中表達的都是什麼意思,int a =0很明顯是將“0”賦值給整型變量a的過程;我們要明白p是一個指針變量,是專門用來存放地址的一種變量。
p就是找到p所指地址的內容
p變量來存放a的地址(&a)

告訴我們p是一個指針變量,int告訴我們p所指地址的內容是一個整型類型
指針變量的地址長度不是根據所指向內容的類型而決定的,而是編譯環境決定的,32位爲4字節,64位環境爲8字節;


結構體的初步認識
我們都知道代碼是用來構建現實世界一種途徑,但是現實世界中的實體並不是一個單一屬性的,每一個實體都是一個複雜對象。舉個例子,當我們要描述一個人的時候,要有名字,身高,年齡,身份證號的信息,而這個時候就不能單純的使用數組或者定義來實現,就要使用到結構體來創造一個類型出來。
使用方法:

struct Book //創造一個結構體類型
{
   char name[20];
   short price;
}

這樣就簡單的構造出來了一個Book類型,而在函數中使用時還要定義變量才能使用,struct Book book1 = {"C語言初步認識",55};
這樣我們就說明了一本命爲“C語言初步認識”且價格爲55元的書定義出來了。
那麼如果我們只是單純的想知道書名應該怎麼操作呢?
第一個方法
這個時候就要用到我們的操作符“.”,它可以訪問我們的book1的成員,訪問name成員:book.name;訪問price成員:book.price;
第二個方法
爲book1創建指針,然後使用操作符“->”完成,使用方法:結構體指針變量->成員名。注意:創建book1的指針類型爲struct Book*





如何修改結構體
修改結構體成員中的整型變量時可以直接賦值覆蓋前面的值即可,
int book1.price = 36;就可以了
而修改結構體成員中的字符串類型時,就要使用到函數strcpy(),它要引入頭文件string.h才能使用。
使用方法:strcpy(book1.name,"C++");



好了,2021年1月17日日就學了這麼一點知識,但我覺得足夠我這樣的小白理解的了!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章