C語言的列舉及指標

2021-07-03 21:24:11 字數 923 閱讀 9668

初學c語言, 在努力啃骨頭,,,,,讀書筆記之列舉及指標應用 ...

總結一下, 定義列舉,用typedef enum關鍵字, 比如 typedef enum color3;

列舉到數值的轉換,如果沒有指定代表數值就是從0開始算, 比如 color3 c=red; printf("%d",c);會顯示0, 除非指定 如typedef enum color3;

關於型別指標的定義, 定義的時候在變數名左邊加*代表此變數只是乙個空指標而已, 若需要賦初始值,只能=0或者=null(null其實也是0),後面的語句必須要真正賦上新位址或者申請記憶體才能使用.

而指標的使用亦非常簡單, 比如定義 int   i=10; *pi=0; 定義好的指標pi, 如果後面用pi則表示引用pi這個指標, 若用*pi則表示引用pi指向的具體數值 .比如 :

int i=10, *pi=0;

pi= &i ;// &就是取位址

*pi+=5;

printf("%d",*pi);  // 15

printf("%d",i);       //因為pi指向i的位址,*pi變了,i也跟著變, 也是15

ok, 若指標要申請新記憶體怎麼做呢, 可以用malloc,如:

#include

int *p=0;

p=(int*) malloc(sizeof(int)); // 這裡為p指標申請一塊實際的記憶體

*p=12345; //為p所指的記憶體賦值

printf("%d",*p);  // 12345

free(p) ;// 釋放記憶體

ok, 那麼指標引數如何傳送呢,如下:

void testp(int *p)

void main()

學了幾天c語言,覺得它是個非常有趣的東西,真不知道為什麼當初那麼排斥它, 要不然可能現在偏向做工控方面的工作了....加油吧...

C語言指標結合列舉筆記

include typedef enum number typedef void taskfun char data void task1 char dat void task2 char dat void task3 char dat taskfun tasktable 3 intmain voi...

C語言指標,及指標識別能力

在建立變數時 號和變數名結合,不和型別名結合 編譯器在編譯時,是從右到左識別的,哪怕在定義時 int p,s 這樣寫也是錯誤的,這樣的寫法編譯器會識別為強轉功能,但是p和s並沒有初始化,自然也就無法進行強轉 強轉的寫法是 int a 0x12345678 int ip a char cp char ...

C語言 列舉

在實際問題中,有些變數的取值被限定在乙個有限的範圍內。例如,乙個星期內只有七天,一年只有十二個月,乙個班每週有六門課程等等。如果把這些量說明為整型,字元型或其它型別顯然是不妥當的。為此,語言提供了一種稱為 列舉 的型別。在 列舉 型別的定義中列舉出所有可能的取值,被說明為該 列舉 型別的變數取值不能...