這個算是數(shù)據結構的內容講解的是一個叫做棧類型的數(shù)據結構,這個數(shù)據結構的特點就是后進先出--最后放進去的數(shù)據最先拿出來。pop函數(shù)就是拿出數(shù)據的操作,push是放入是數(shù)據的操作。
創(chuàng)新互聯(lián)建站-專業(yè)網站定制、快速模板網站建設、高性價比臨桂網站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式臨桂網站制作公司更省心,省錢,快速模板網站建設找我們,業(yè)務覆蓋臨桂地區(qū)。費用合理售后完善,十余年實體公司更值得信賴。
內容拓展:
pop函數(shù)呵push函數(shù)的使用:
#include stdio.h
#include unistd.h
#include pthread.h
void *clean(void *arg)
{
printf("cleanup: %s \n",(char *)arg);
return (void *)0;
}
void * thr_fn1(void * arg)
{
printf("chread 1 start \n");
pthread_cleanup_push((void *)clean,"thraed 1 first handler");
pthread_cleanup_push((void *)clean,"thread 1 second handler");
printf("thread 1 push complete \n");
if(arg)
{
return ((void *)1);
}
pthread_cleanup_pop(0);
pthread_cleanup_pop(0);
return (void *)1;
}
//輸出結果: chread 1 start -thread 1 push complte?
//push和pop框起來的代碼,不管正常退出還是異常退出,都將執(zhí)行清除函數(shù),但是存在特例:不包括return 退出。
關于 pop 函數(shù),我不太確定題主說的是哪個函數(shù),因為 C 語言的標準函數(shù)庫是沒有 pop 這個函數(shù)的。如果題主說的是 C++ 的 Stack 類中的 pop 函數(shù)的話,它并不是一個縮寫,因為從棧中取值的操作就叫做 pop。
然后就是查詢單詞原型的網站,因為 C 語言好多函數(shù)庫中的函數(shù)名都是按照很奇怪的方法縮寫的,所以基本上沒有一個專門查全稱的網站。不過題主可以參考
這個網站里面雖然沒有指出具體的縮寫方式,但是能很好地解釋 C 語言標準函數(shù)庫的所有函數(shù)的作用。通過它的介紹你應該會對函數(shù)的全稱有一個大概的理解。比如說這個針對 stdio.h 頭文件中所定義函數(shù)的解釋:
不光是 C 語言,C++ 的標準類庫的信息也可以在這個網站中找到。
在函數(shù)定義時寫int
pop(int
s,
int
e)是說明參數(shù)是直接引用的參數(shù)
在函數(shù)調用時寫pop(a,
b);[注意這個不是函數(shù)定義,而是調用語句],
這里的是取地址的運算,與函數(shù)參數(shù)定義時的不是同一個含義,因此在這里不能理解是引用傳遞的意思,而是取a和b的地址傳遞給函數(shù)的參數(shù)變量s和e(應該是調用第3個函數(shù))
第2個函數(shù)調用直接寫pop(a,b);即可實現(xiàn)
與它前面的類型SElemType一起把變量e定義為一種引用類型的變量,引用類型是C++相較于C語言新增加的語言特性,具有與指針類似的作用。把一個變量定義為引用類型的方法與定義為指針類型的方法也類似,把*改成就行了。比如:
//全局變量
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);
//調用參數(shù)為引用類型的函數(shù)時,直接傳遞實參名作參數(shù)就行了
f3(n);
函數(shù)f2和函數(shù)f3的調用都會改變全局變量n的值。