目錄
1.指標
2.結構體
1.指標
指標就是保存變數地址的變數,也可以叫它指標變數,
下面用代碼來說它是怎么用的
#include <stdio.h>
int main()
{
int a = 0;
int* p = &a;
*p = 20;
printf("%d\n",a);
printf("%d\n",*p);
return 0;
}
這里的p是指標變數——是用來存放地址的變數;
此處的*告訴我們p是指標變數并沒有實際意義只是語法形式;
int表示p指的物件是int型別,
*p = 20;此處的*是解參考運算子
&為取地址運算子
指標的型別是根據原來值的型別來確定用什么型別的指標,如:char型別,那就用char* ,
有人可能會問用不同的型別宣告可以嗎?當然可以,但是會出現一些問題,在這里先不講了,以后的博客中會進行講解的,感興趣的讀者可以自己探索一下,
指標的大小由電腦的平臺所決定的而不是由指標型別決定的,
如果平臺上是32位的,那就是4個位元組的大小;64位的平臺就是8個位元組的大小,
#include <stdio.h>
int main()
{
printf("%d\n", sizeof(int*));
printf("%d\n", sizeof(char*));
printf("%d\n", sizeof(long*));
printf("%d\n", sizeof(float*));
return 0;
}
在我的32位平臺上上面的輸出結果都是4,
大家有沒有想過一個問題,怎么描述一個人,或者其他復雜的物件呢?
這就不能再用整型變數,實型變數了,下面進入我們的主角,
結構體 :用來處理比較復雜的物件
struct 結構體關鍵字
下面用代碼創建一個結構體型別;以一本書為例子
struct Book
{
char name[20];
int price;
};
大家有沒有注意此處有——分號
上面就是創建的結構體型別,
那它是怎么用的呢?看下面的代碼:
#include <stdio.h>
struct Book
{
char name[20];
int price;
};
int main()
{
struct Book a1 = { "c語言程式設計",55 };
printf("%s\n", a1.name);
printf("%d\n", a1.price);
//下面是用指標表示的兩種方式
struct Book* pb = &a1;
printf("%s\n", (*pb).name);
printf("%d\n", (*pb).price);
printf("%s\n", pb->name);
printf("%s\n", pb->price);
return 0;
}
"." 運算子用于結構體變數中,->運算子是這樣用的:結構體指標->成員
在函式傳參的時候,很多時候傳的是結構體的地址,為什么呢?
歡迎在評論區留下你的看法,
預計我會出幾期非常非常詳細指標,結構體,

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/392573.html
標籤:其他
