Pop函數(shù)改成這樣:

公司主營業(yè)務(wù):成都做網(wǎng)站、成都網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)公司推出臨澧免費(fèi)做網(wǎng)站回饋大家。
int Pop (Stack * pstack, int * pname)
{
if(pstack-top=0)
{
return 0;
}
pstack-top--;
* pname = pstack-data[pstack-top];
return 1;
}
Push函數(shù)改成這樣:
int Push (Stack * pstack, int num)
{
if(pstack-top=Stack_size)
{
printf("Push Error!");
return 0;
}
pstack-data[pstack-top]=num;
pstack-top++;
return 0;
}
試試(原來那樣當(dāng)元素達(dá)到最大數(shù)目時(shí)pstack-top就越界了)。
#include?stdio.h
#include?stdlib.h
#define?MAXSIZE?32
typedef?struct{
int?*elem;/*?棧的存儲(chǔ)區(qū)?*/
??int?max;???/*?棧的容量,即找中最多能存放的元素個(gè)數(shù)?*/
??int?top;???/*?棧頂指針?*/?
}Stack;
int?InitStack(Stack?*S,?int?n)?/*創(chuàng)建容量為n的空棧*/
{
S-elem?=?(int?*)malloc(n?*?sizeof(int));
if(S-elem==NULL)?return?-1;
S-max=n;
S-top?=0;?//棧頂初值0
return?0;
}
int?Push(Stack?*S,?int?item)?/*將整數(shù)item壓入棧頂*/
{
if(S-top==S-max)?{
printf("Stack?is?full!?\n");
return?-1;
}
S-elem[S-top++]?=?item;?//壓棧,棧頂加1
return?0;
}
int?StackEmpty(Stack?S)
{
return?(!S.top)?1:0;?/*判斷棧是否為空*/
}
int?Pop(Stack?*S)?/*棧頂元素出棧*/
{
if(!S-top)?{
printf("Pop?an?empty?stack!\n");
return?-1;
}
return?S-elem[--S-top]??;?//彈出棧,棧頂減1
}
void?MultibaseOutput(long?n,int?B)
{
int?m;?Stack?S;
if(InitStack(S,MAXSIZE)){
printf("Failure!\n");
return;
}
do?{
if?(Push(S,B?))?//------
{
printf("Failure!\n");
return;
}
n=?n-1?;?//--------
}while(n!=0);
while(!StackEmpty(S))?{?/*輸出B進(jìn)制的數(shù)*/
m=Pop(S);
if(m10)?printf("%d",m);?/*小于10,輸出數(shù)字*/
else?printf("%c",?m+55);?/*大于或等于10,輸出相應(yīng)的字符*/
}
printf("\n");
}
與它前面的類型SElemType一起把變量e定義為一種引用類型的變量,引用類型是C++相較于C語言新增加的語言特性,具有與指針類似的作用。把一個(gè)變量定義為引用類型的方法與定義為指針類型的方法也類似,把*改成就行了。比如:
//全局變量
int n=1;
void f1(int n)
{
n=2;
}
void f2(int *n)
{
*n=3;
}
void f3(int n)
{
n=4;
}
f1(n);
f2(n);
//調(diào)用參數(shù)為引用類型的函數(shù)時(shí),直接傳遞實(shí)參名作參數(shù)就行了
f3(n);
函數(shù)f2和函數(shù)f3的調(diào)用都會(huì)改變?nèi)肿兞縩的值。
關(guān)于 pop 函數(shù),我不太確定題主說的是哪個(gè)函數(shù),因?yàn)?C 語言的標(biāo)準(zhǔn)函數(shù)庫是沒有 pop 這個(gè)函數(shù)的。如果題主說的是 C++ 的 Stack 類中的 pop 函數(shù)的話,它并不是一個(gè)縮寫,因?yàn)閺臈V腥≈档牟僮骶徒凶?pop。
然后就是查詢單詞原型的網(wǎng)站,因?yàn)?C 語言好多函數(shù)庫中的函數(shù)名都是按照很奇怪的方法縮寫的,所以基本上沒有一個(gè)專門查全稱的網(wǎng)站。不過題主可以參考
這個(gè)網(wǎng)站里面雖然沒有指出具體的縮寫方式,但是能很好地解釋 C 語言標(biāo)準(zhǔn)函數(shù)庫的所有函數(shù)的作用。通過它的介紹你應(yīng)該會(huì)對函數(shù)的全稱有一個(gè)大概的理解。比如說這個(gè)針對 stdio.h 頭文件中所定義函數(shù)的解釋:
不光是 C 語言,C++ 的標(biāo)準(zhǔn)類庫的信息也可以在這個(gè)網(wǎng)站中找到。
在函數(shù)定義時(shí)寫int
pop(int
s,
int
e)是說明參數(shù)是直接引用的參數(shù)
在函數(shù)調(diào)用時(shí)寫pop(a,
b);[注意這個(gè)不是函數(shù)定義,而是調(diào)用語句],
這里的是取地址的運(yùn)算,與函數(shù)參數(shù)定義時(shí)的不是同一個(gè)含義,因此在這里不能理解是引用傳遞的意思,而是取a和b的地址傳遞給函數(shù)的參數(shù)變量s和e(應(yīng)該是調(diào)用第3個(gè)函數(shù))
第2個(gè)函數(shù)調(diào)用直接寫pop(a,b);即可實(shí)現(xiàn)
新聞名稱:c語言pop函數(shù)用法 c語言中pop函數(shù)
標(biāo)題網(wǎng)址:http://chinadenli.net/article38/hejcsp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、定制開發(fā)、網(wǎng)站內(nèi)鏈、企業(yè)建站、品牌網(wǎng)站制作、軟件開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)