梓益C語言學(xué)習(xí)總結(jié)-創(chuàng)新互聯(lián)

梓益C語言學(xué)習(xí)總結(jié)

成都創(chuàng)新互聯(lián)公司2013年成立,先為巴林右旗等服務(wù)建站,巴林右旗等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為巴林右旗企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

一、靜態(tài)變量與普通變量的區(qū)別

1.1、普通的全局變量

概念:

在函數(shù)外部定義的變量

作用范圍:

全局變量的作用范圍,是程序的所有地方。

只不過用之前需要聲明。聲明方法 extern int num;  聲明的時候,不要賦值。

生命周期:

程序運行的整個過程,一直存在,直到程序結(jié)束。

注意:定義普通的全局變量的時候,如果不賦初值,它的值默認為0

1.2、靜態(tài)全局變量  static

概念:

定義全局變量的時候,前面用static 修飾。

作用范圍:

static 限定了靜態(tài)全局變量的,作用范圍

只能在它定義的.c(源文件)中有效

生命周期:

在程序的整個運行過程中,一直存在。

注意:定義靜態(tài)全局變量的時候,如果不賦初值,它的值默認為0

2.1、普通的局部變量

概念:

在函數(shù)內(nèi)部定義的,或者復(fù)合語句中定義的變量

作用范圍:

在函數(shù)中定義的變量,在函數(shù)中有效

在復(fù)合語句中定義的,在復(fù)合語句中有效。

生命周期:

在函數(shù)調(diào)用之前,局部變量不占用空間,調(diào)用函數(shù)的時候,才為局部變量開辟空間,函數(shù)結(jié)束了,局部變量就釋放了。

在復(fù)合語句中定義的亦如此。

注意:定義局部變量的時候,如果不賦初值,它的值為隨機值

2.2、靜態(tài)的局部變量

概念:

定義局部變量的時候,前面加static 修飾

作用范圍:

在它定義的函數(shù)或復(fù)合語句中有效。

生命周期:

第一次調(diào)用函數(shù)的時候,開辟空間賦值,函數(shù)結(jié)束后,不釋放,以后再調(diào)用函數(shù)的時候,就不再為其開辟空間,也不賦初值,

用的是以前的那個變量。

注意:

1:定義普通局部變量,如果不賦初值,它的值是隨機的。

2:定義靜態(tài)局部變量,如果不賦初值,它的值是0

3:普通全局變量和靜態(tài)全局變量如果不賦初值,它的值為0

二、頭文件路徑

#include<>  在系統(tǒng)路徑下查找頭文件

#include“ ”  在當(dāng)前目錄下查找頭文件

三、a++ 先調(diào)用a再把它的值加一,++a 先把a的值加一再調(diào)用a

四、宏定義  #define

1、宏定義后不加分號,宏定義的值不能改變

2、宏是在預(yù)編譯的時候進行替換,無變量,不占內(nèi)存

3、宏定義可以防止不知含義的數(shù)字出現(xiàn),方便修改

4、可以定義任何類型

不帶參宏

#define  PI  3.14

在預(yù)編譯的時候如果代碼中出現(xiàn)了PI 就用 3.14去替換。

宏的好處:只要修改宏定義,其他地方在預(yù)編譯的時候就會重新替換。

終止宏:#undef  PI //終止PI的作用

帶參宏(宏函數(shù))

#define S(a,b) (a)*(b)

注意帶參宏的形參 a和b沒有類型名,

S(2,4) 將來在預(yù)處理的時候替換成 實參替代字符串的形參,其他字符保留,(2) * (4)

五、條件編譯(選擇性編譯)

#ifdef  AAA

代碼段一

#else

代碼段二

#endif

如果在當(dāng)前.c ifdef 上邊定義過AAA ,就編譯代碼段一,否則編譯代碼段二

常用在.h文件頭部,如:文件fun.h開頭寫上

#ifndef  FUN_H

 # define FUN_H

  .......代碼段.......

# endif

防止fun.h文件被重復(fù)引用

六、動態(tài)庫和靜態(tài)庫

一:動態(tài)編譯

動態(tài)編譯使用的是動態(tài)庫文件進行編譯

gcc  hello.c  -o  hello

咱們使用的是動態(tài)編譯方法

二:靜態(tài)編譯

靜態(tài)編譯使用的靜態(tài)庫文件進行編譯

gcc  -static  hello.c  -o hello

三:靜態(tài)編譯和動態(tài)編譯區(qū)別

1:使用的庫文件的格式不一樣,動態(tài)編譯使用動態(tài)庫,靜態(tài)編譯使用靜態(tài)庫

注意:

1:靜態(tài)編譯要把靜態(tài)庫文件打包編譯到可執(zhí)行程序中。

2:動態(tài)編譯不會把動態(tài)庫文件打包編譯到可執(zhí)行程序中,它只是編譯鏈接關(guān)系

制作靜態(tài)庫:.c文件mylib.c

gcc -c mylib.c -o mylib.o生成mylib.o

ar rc libtestlib.a mylib.o生成靜態(tài)庫libtestlib.a

注意:靜態(tài)庫起名的時候必須以lib開頭以.a結(jié)尾

編譯程序:gcc -static mytest.c libtestlib.a -o mytest

制作動態(tài)鏈接庫:gcc  -shared  mylib.c  -o  libtestlib.so //使用gcc編譯、制作動態(tài)鏈接庫

動態(tài)鏈接庫的使用:gcc  mytest.c libtestlib.so  -o  mytest

七、

出現(xiàn)段錯誤,一定是指針用錯了

定義字符數(shù)組時,記得初始化為空 char  str[20]=" ",將空間定義大點,后期可以進行優(yōu)化

八、創(chuàng)建鏈表的兩種方法

頭插法-有返回值

(STU *)link_creat_head(STU *p_head,STU *p_new)

{

if(p_head==NULL) //當(dāng)?shù)谝淮渭尤腈湵頌榭諘r,head執(zhí)行p_new

{

p_head=p_new;

p_new->next=NULL;

}

else //第二次及以后加入鏈表

{

p_new->next=p_head; //將新申請的節(jié)點加入鏈表

p_head=p_new;

}

return p_head;

}

尾插法-無返回值

void link_creat_head(STU **p_head,STU *p_new)

{

STU *p_mov=*p_head;

if(*p_head==NULL) //當(dāng)?shù)谝淮渭尤腈湵頌榭諘r,head執(zhí)行p_new

{

*p_head=p_new;

p_new->next=NULL;

}

else //第二次及以后加入鏈表

{

while(p_mov->next!=NULL)

{

p_mov=p_mov->next; //找到原有鏈表的最后一個節(jié)點

}

p_mov->next=p_new; //將新申請的節(jié)點加入鏈表

p_new->next=NULL;

}

}

鏈表逆序:每個節(jié)點的next指針的方向調(diào)頭反向

STU *reverse(STU *head)

 {

STU *pf,*pb,*r;

    pf=head;

    pb=pf->next;

    while(pb!=NULL)

    {

r=pb->next;

       pb->next=pf;

       pf=pb;

       pb=r;

    }

    head->next=NULL;

    head=pf;

    return head;

}

九、fgets

stdout、stdin 標(biāo)準(zhǔn)輸入輸出緩沖區(qū)指針

用fgets代替scanf進行輸入讀取,避免緩沖區(qū)溢出

buf1[20]=" ";

fgets(buf1, sizeof(buf1)-1, stdin);

buf1(strlen(buf1)-1)='\0';

printf("%s\n", buf1);

如果和scanf一起用,要先讀出緩沖區(qū)中的\n,  char ch=0; scanf("%c", &ch);

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

分享題目:梓益C語言學(xué)習(xí)總結(jié)-創(chuàng)新互聯(lián)
鏈接URL:http://bm7419.com/article16/cdjdgg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序Google、云服務(wù)器外貿(mào)網(wǎng)站建設(shè)、App設(shè)計、全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化