C語(yǔ)言中枚舉與指針的實(shí)例詳解
C語(yǔ)言中枚舉與指針的實(shí)例詳解
總結(jié)一下, 定義枚舉,用typedef enum關(guān)鍵字, 比如 typedef enum{Red,Green,Blue} Color3;
枚舉到數(shù)值的轉(zhuǎn)換,如果沒(méi)有指定代表數(shù)值就是從0開(kāi)始算, 比如 Color3 c=Red; printf("%d",c);會(huì)顯示0, 除非指定 如typedef enum{Red=3,Green=5,Blue=10} Color3;
關(guān)于類型指針的定義, 定義的時(shí)候在變量名左邊加*代表此變量只是一個(gè)空指針而已, 若需要賦初始值,只能=0或者=NULL(NULL其實(shí)也是0),后面的語(yǔ)句必須要真正賦上新地址或者申請(qǐng)內(nèi)存才能使用.
而指針的使用亦非常簡(jiǎn)單, 比如定義 int i=10; *pi=0; 定義好的指針pi, 如果后面用pi則表示引用pi這個(gè)指針, 若用*pi則表示引用pi指向的具體數(shù)值 .
比如 :
int i=10, *pi=0;
pi= &i ;// &就是取地址
*pi+=5;
printf("%d",*pi); // 15
printf("%d",i); //因?yàn)閜i指向i的地址,*pi變了,i也跟著變, 也是15
OK, 若指針要申請(qǐng)新內(nèi)存怎么做呢, 可以用malloc,如:
#include <malloc.h>
...
int *p=0;
p=(int*) malloc(sizeof(int)); // 這里為p指針申請(qǐng)一塊實(shí)際的內(nèi)存
*p=12345; //為p所指的內(nèi)存賦值
printf("%d",*p); // 12345
free(p) ;// 釋放內(nèi)存
OK, 那么指針參數(shù)如何傳送呢,如下:
void testP(int *p){
*p+=100;
}
void main(){
int i=10;
testP(&i);
testP(&i);
printf("%d", i): //你覺(jué)得是多少呢?
}
如有疑問(wèn)請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
C++第三方日志庫(kù)log4cplus的安裝與使用配置教程
log4cplus是C++編寫的開(kāi)源的日志系統(tǒng),log4cplus具有線程安全、靈活、以及多粒度控制的特點(diǎn),本文給大家介紹C++第三方日志庫(kù)log4cplus的安裝與使用教程,感興趣的朋友一起看看吧2022-02-02
C實(shí)現(xiàn)的非阻塞方式命令行端口掃描器源碼
這篇文章主要介紹了C實(shí)現(xiàn)的非阻塞方式命令行端口掃描器源碼,對(duì)于大家理解C端口掃描器有很大幫主,需要的朋友可以參考下2014-07-07
C語(yǔ)言設(shè)計(jì)一個(gè)閃閃的圣誕樹(shù)
本文使用C語(yǔ)言基礎(chǔ)知識(shí)在控制臺(tái)打印一個(gè)圣誕樹(shù)效果,真的很簡(jiǎn)單哦,一起通過(guò)本文學(xué)習(xí)吧2016-12-12
C++簡(jiǎn)易通訊錄系統(tǒng)實(shí)現(xiàn)流程詳解
這篇文章主要為大家介紹了C語(yǔ)言簡(jiǎn)易版通訊錄的具體實(shí)現(xiàn)流程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
使用C語(yǔ)言遞歸與非遞歸實(shí)現(xiàn)字符串反轉(zhuǎn)函數(shù)char *reverse(char *str)的方法
本篇文章是對(duì)使用C語(yǔ)言遞歸與非遞歸實(shí)現(xiàn)字符串反轉(zhuǎn)函數(shù)char *reverse(char *str)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05

