<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          回顧:C的基礎(chǔ)語(yǔ)法

          共 980字,需瀏覽 2分鐘

           ·

          2020-09-02 05:21

          1.入門(mén)程序

          #include int main(){printf("Hello World!");return 0;}

          2.數(shù)據(jù)類(lèi)型

          數(shù)據(jù)類(lèi)型:

              1.基本數(shù)據(jù)類(lèi)型
          1.1.整型:int 4個(gè)字節(jié)
          1.2.字符型:char 1個(gè)字節(jié)
          1.3.實(shí)型(浮點(diǎn)型)
          1.3.1.單精度型:float 4個(gè)字節(jié)
          1.3.2.雙精度型:double 8個(gè)字節(jié)
          2.構(gòu)造類(lèi)型
          2.1.枚舉類(lèi)型
          2.2.數(shù)組類(lèi)型
          2.3.結(jié)構(gòu)體類(lèi)型
          2.4.共用體類(lèi)型
          3.指針類(lèi)型
          4.空類(lèi)型

          3.格式化輸出語(yǔ)句

          %d:十進(jìn)制整數(shù);
          %c:單個(gè)字符;
          %s:字符串;
          %f:6位小數(shù);
          #include int main(){int age = 18;float height = 1.85;char unit = 'm';printf("小明今年%d歲\n", age);printf("小明身高%f%c\n", height, unit);printf("小明現(xiàn)在在慕課網(wǎng)上學(xué)習(xí)IT技術(shù)\n"); return 0;}

          4.常量

          值不發(fā)生改變的量成為常量;定義字符常量(注意后面沒(méi)有;)
          #include #define POCKETMONEY  10   //定義常量及常量值int main(){printf("小明今天又得到%d元零花錢(qián)\n", POCKETMONEY);return 0;  }

          5.運(yùn)算符

          5.1.算數(shù)運(yùn)算符:+,-,*,/,%,++,--;前++/--,先運(yùn)算,再取值.后++/--,先取值,再運(yùn)算;5.2.賦值運(yùn)算符:5.3.關(guān)系運(yùn)算符;5.4.邏輯運(yùn)算符;5.5.三目運(yùn)算符:表達(dá)式1 ? 表達(dá)式2 : 表達(dá)式3;

          6.水花仙數(shù)計(jì)算

          輸出所有三位數(shù)的水仙花數(shù)字
          所謂“水仙花數(shù)”是指一個(gè)三位數(shù),其各位數(shù)字立方和等于該數(shù),如:153就是一個(gè)水仙花數(shù),153=111+555+333。
          #include int main(){//定義三位數(shù)num,個(gè)位數(shù)sd,十位數(shù)td,百位數(shù)hdint num, sd, td, hd;//循環(huán)所有三位數(shù)for(   num=100  ;  num<1000   ;    num++  )    {//獲取三位數(shù)字num百位上的數(shù)字        hd =        num/100         ;//獲取三位數(shù)字num十位上的數(shù)字        td =        num/10%10         ;//獲取三位數(shù)字num個(gè)位上的數(shù)字        sd =        num%10        ;//水仙花數(shù)的條件是什么?if(num ==hd*hd*hd+td*td*td+sd*sd*sd   )         {printf("水仙花數(shù)字:%d\n", num);            }    }return 0;    }

          7.打印正三角形的*

          #include int main(){int i, j, k;for(i=1; i<5; i++)    {/* 觀察每行的空格數(shù)量,補(bǔ)全循環(huán)條件 */for(    j=i ;  j<5 ;  j++  )          {printf(" ");    //輸出空格        }/* 觀察每行*號(hào)的數(shù)量,補(bǔ)全循環(huán)條件 */for( k=0 ;  k<2*i-1 ;  k++     )         {printf("*");   //每行輸出的*號(hào)        }printf("\n");     //每次循環(huán)換行    }return 0;}

          8.臭名遠(yuǎn)揚(yáng)的goto語(yǔ)句

          很少使用
          #include int main(){int sum = 0;int i;for(i=1; i<=10; i++)    {printf("%d\n", i);if(i==3){goto LOOP;//滿足條件就執(zhí)行g(shù)oto語(yǔ)句        }    }//執(zhí)行g(shù)oto   LOOP:printf("結(jié)束for循環(huán)了....");  //請(qǐng)選擇合適位置添加標(biāo)識(shí)符return 0;    }

          9.形參與實(shí)參

          形參:形參是在定義函數(shù)名和函數(shù)體的時(shí)候使用的參數(shù),目的是用來(lái)接收調(diào)用該函數(shù)時(shí)傳入的參數(shù);
          實(shí)參:實(shí)參是在調(diào)用時(shí)傳遞該函數(shù)的參數(shù)

          函數(shù)的形參和實(shí)參具有以下特點(diǎn):
              1.形參只有在被調(diào)用時(shí)才分配內(nèi)存單元,在調(diào)用結(jié)束時(shí),即刻釋放所分配的內(nèi)存單元。因此,形參只有在函數(shù)內(nèi)部有效。函數(shù)調(diào)用結(jié)束返回主調(diào)函數(shù)后則不能再使用該形參變量。
          2.實(shí)參可以是常量、變量、表達(dá)式、函數(shù)等,無(wú)論實(shí)參是何種類(lèi)型的量,在進(jìn)行函數(shù)調(diào)用時(shí),它們都必須具有確定的值,以便把這些值傳送給形參。因此應(yīng)預(yù)先用賦值等辦法使實(shí)參獲得確定值。
          3.在參數(shù)傳遞時(shí),實(shí)參和形參在數(shù)量上,類(lèi)型上,順序上應(yīng)嚴(yán)格一致,否則會(huì)發(fā)生類(lèi)型不匹配”的錯(cuò)誤。

          10.函數(shù)返回值注意


          注意:void函數(shù)中可以有執(zhí)行代碼塊,但是不能有返回值,另void函數(shù)中如果有return語(yǔ)句,該語(yǔ)句只能起到結(jié)束函數(shù)運(yùn)行的功能。其格式為:return;

          11.遞歸


          #include int getPeachNumber(int n)  //這里要定義n,要不編譯器會(huì)報(bào)錯(cuò)!{int num;    if(n==10)    {return 1;          } else    {        num = (getPeachNumber(n+1)+1)*2;  printf("第%d天所剩桃子%d個(gè)\n", n, num);     }return num;}int main(){int num = getPeachNumber(1);printf("猴子第一天摘了:%d個(gè)桃子。\n", num);return 0;}

          12.變量存儲(chǔ)類(lèi)別 !

          12.1.生存周期劃分存儲(chǔ)方式
          C語(yǔ)言根據(jù)變量的生存周期來(lái)劃分,可以分為靜態(tài)存儲(chǔ)方式動(dòng)態(tài)存儲(chǔ)方式靜態(tài)存儲(chǔ)方式:是指在程序運(yùn)行期間分配固定的存儲(chǔ)空間的方式。靜態(tài)存儲(chǔ)區(qū)中存放了在整個(gè)程序執(zhí)行過(guò)程中都存在的變量,如全局變量。動(dòng)態(tài)存儲(chǔ)方式:是指在程序運(yùn)行期間根據(jù)需要進(jìn)行動(dòng)態(tài)的分配存儲(chǔ)空間的方式。動(dòng)態(tài)存儲(chǔ)區(qū)中存放的變量是根據(jù)程序運(yùn)行的需要而建立和釋放的,通常包括:函數(shù)形式參數(shù);自動(dòng)變量;函數(shù)調(diào)用時(shí)的現(xiàn)場(chǎng)保護(hù)和返回地址等。
          12.2.存儲(chǔ)類(lèi)型劃分
          C語(yǔ)言中存儲(chǔ)類(lèi)別又分為四類(lèi):自動(dòng)(auto)、靜態(tài)(static)、寄存器的(register)和外部的(extern) ;1、用關(guān)鍵字auto定義的變量為自動(dòng)變量,auto可以省略,auto不寫(xiě)則隱含定為“自動(dòng)存儲(chǔ)類(lèi)別”,屬于動(dòng)態(tài)存儲(chǔ)方式。
          2、用static修飾的為靜態(tài)變量,如果定義在函數(shù)內(nèi)部的,稱之為靜態(tài)局部變量;如果定義在函數(shù)外部,稱之為靜態(tài)外部變量
          注意:靜態(tài)局部變量屬于靜態(tài)存儲(chǔ)類(lèi)別,在靜態(tài)存儲(chǔ)區(qū)內(nèi)分配存儲(chǔ)單元,在程序整個(gè)運(yùn)行期間都不釋放;靜態(tài)局部變量在編譯時(shí)賦初值,即只賦初值一次;如果在定義局部變量時(shí)不賦初值的話,則對(duì)靜態(tài)局部變量來(lái)說(shuō),編譯時(shí)自動(dòng)賦初值0(對(duì)數(shù)值型變量)或空字符(對(duì)字符變量)
          3、為了提高效率,C語(yǔ)言允許將局部變量的值放在CPU中的寄存器中,這種變量叫“寄存器變量”,用關(guān)鍵字register作聲明。
          注意:只有局部自動(dòng)變量和形式參數(shù)可以作為寄存器變量;一個(gè)計(jì)算機(jī)系統(tǒng)中的寄存器數(shù)目有限,不能定義任意多個(gè)寄存器變量;局部靜態(tài)變量不能定義為寄存器變量
          4、用extern聲明的的變量是外部變量,外部變量的意義是某函數(shù)可以調(diào)用在該函數(shù)之后定義的變量

          #includ int main(){//定義外部局部變量extern int x;return 0;}int x=100;

          13.內(nèi)部函數(shù)外部函數(shù) !


          在C語(yǔ)言中不能被其他源文件調(diào)用的函數(shù)稱為內(nèi)部函數(shù) ,內(nèi)部函數(shù)由static關(guān)鍵字來(lái)定義,因此又被稱為靜態(tài)函數(shù),形式為:


          static [數(shù)據(jù)類(lèi)型] 函數(shù)名([參數(shù)])

          這里的static是對(duì)函數(shù)的作用范圍的一個(gè)限定,限定該函數(shù)只能在其所處的源文件中使用,因此在不同文件中出現(xiàn)相同的函數(shù)名稱的內(nèi)部函數(shù)是沒(méi)有問(wèn)題的。

          在C語(yǔ)言中能被其他源文件調(diào)用的函數(shù)稱為外部函數(shù) ,外部函數(shù)由extern關(guān)鍵字來(lái)定義,形式為:

          extern [數(shù)據(jù)類(lèi)型] 函數(shù)名([參數(shù)])

          C語(yǔ)言規(guī)定,在沒(méi)有指定函數(shù)的作用范圍時(shí),系統(tǒng)會(huì)默認(rèn)認(rèn)為是外部函數(shù),因此當(dāng)需要定義外部函數(shù)時(shí)extern也可以省略。
          extern可以省略;

          14.數(shù)組

          數(shù)組:一塊連續(xù)的,大小固定并且里面的數(shù)據(jù)類(lèi)型一致的內(nèi)存空間數(shù)組的聲明:數(shù)據(jù)類(lèi)型 數(shù)組名稱[長(zhǎng)度n]
          1. 數(shù)據(jù)類(lèi)型 數(shù)組名稱[長(zhǎng)度n] = {元素1,元素2,元素3,......};
          2. 數(shù)據(jù)類(lèi)型 數(shù)組名稱[] = {元素1,元素2,元素3,......};
          3. 數(shù)類(lèi)類(lèi)型 數(shù)組名稱[長(zhǎng)度n];
          數(shù)組名稱[0] = 元素1;數(shù)組名稱[1] = 元素2;......
          注意:1、數(shù)組的下標(biāo)均以0開(kāi)始;2、數(shù)組在初始化的時(shí)候,數(shù)組內(nèi)元素的個(gè)數(shù)不能大于聲明的數(shù)組長(zhǎng)度;3、如果采用第一種初始化方式,元素個(gè)數(shù)小于數(shù)組的長(zhǎng)度時(shí),多余的數(shù)組元素初始化為0;4、在聲明數(shù)組后沒(méi)有進(jìn)行初始化的時(shí)候,靜態(tài)(static)和外部(extern)類(lèi)型的數(shù)組元素初始化元素為0,自動(dòng)(auto)類(lèi)型的數(shù)組的元素初始化值不確定。

          15.數(shù)組遍歷


          #include int main(){int arr[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};int i;for(i=0;i<10;i++)    {printf("%d\n",arr[i]);    }return 0;}

          15.數(shù)組的冒泡排序

          冒泡排序的思想:相鄰元素兩兩比較,將較大的數(shù)字放在后面,直到將所有數(shù)字全部排序。15.字符串與數(shù)組在C語(yǔ)言中,是沒(méi)有辦法直接定義子字符串?dāng)?shù)據(jù)類(lèi)型的,需使用數(shù)組來(lái)定義所要的字符串,形式如下:
          1. char 字符串名稱[長(zhǎng)度] = "字符串內(nèi)容";
          2. char 字符串名稱[長(zhǎng)度] = {'字符串1','字符串2',....,'字符串n','\0'};
          注:
          1.[]中的長(zhǎng)度可以省略不寫(xiě);
          2.采用第二種方式最后一個(gè)元素必須是'\0',表示結(jié)束;
          3.第二種方式不能寫(xiě)中文!;
          輸出字符串時(shí),要使用:printf("%s",字符數(shù)組名);或puts(字符數(shù)組名);

          16.字符串函數(shù)

          1. strlen(s):獲取字符串s的長(zhǎng)度;


          2.strcmp(s1,s2):比較字符串;比較的時(shí)候會(huì)把字符串轉(zhuǎn)換成ASCII碼再進(jìn)行比較,返回結(jié)果為0表示s1和s2的ASCII碼值相等,返回結(jié)果為1表示s1比s2的ASCII碼大,返回結(jié)果為-1表示s1比s2的ACSII碼小;
          3.strcpy(s1,s2):字符串拷貝;s2會(huì)取代s1中的內(nèi)容;
          4.strcat(s1,s2)將s2拼接到s1后面;注意:s1的length要足夠才可以!
          5.atoi(s1)將字符串轉(zhuǎn)為整數(shù)!

          17.多維數(shù)組

          數(shù)據(jù)類(lèi)型 數(shù)組名稱[常量表達(dá)式1]...[常量表達(dá)式n];
          多維數(shù)組的初始化與一維數(shù)組的初始化類(lèi)似也是分兩種:

          1、數(shù)據(jù)類(lèi)型 數(shù)組名稱[常量表達(dá)式1][常量表達(dá)式2]...[常量表達(dá)式n] = {{值1,..,值n},{值1,..,值n},...,{值1,..,值n}};

          2、數(shù)據(jù)類(lèi)型 數(shù)組名稱[常量表達(dá)式1][常量表達(dá)式2]...[常量表達(dá)式n]; 數(shù)組名稱[下標(biāo)1][下標(biāo)2]...[下標(biāo)n] = 值;
          多維數(shù)組初始化要注意以下事項(xiàng):1、采用第一種始化時(shí)數(shù)組聲明必須指定列的維數(shù)。因?yàn)橄到y(tǒng)會(huì)根據(jù)數(shù)組中元素的總個(gè)數(shù)來(lái)分配空間,當(dāng)知道元素總個(gè)數(shù)以及列的維數(shù)后,會(huì)直接計(jì)算出行的維數(shù)2、采用第二種初始化時(shí)數(shù)組聲明必須同時(shí)指定行和列的維數(shù)。

          18.多維度數(shù)組的遍歷

          使用嵌套循環(huán)注意:多維數(shù)組的每一維下標(biāo)均不能越界!
          瀏覽 64
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  尤物视频高清无码在线观看 | 亚洲资源在线观看 | 激情五月图片亚洲婷婷 | 女人天堂网在线 | 嫩草久久99www亚洲红桃 |