亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 第1章 c語言.txt

?? 我自己整理的c語言教程 來自 c語言之家
?? TXT
?? 第 1 頁 / 共 2 頁
字號:
C語言編程中的常見問題  
 

 
發表日期:2003年9月21日    作者:C語言之家 整理  已經有15277位讀者讀過此文 
 


                                         第1章  C語言

    本章主要描述C語言一些基本要素。當你開始編寫C程序時,你可能對C語言的一些基本問題感到困惑,如C語言所使用的約定、關鍵字和術語等。本章將回答這方面你經常會遇到的一些問題。
    例如,switch語句是最常用的一種C語言構件,本章將回答與它有關的三個常見問題。本章還涉及其它幾個問題,如循環、分支、運算符的優先級和程序塊技術。在閱讀本章時,請注意有關switch語句和運算符優先級的一些問題,這些問題常常會使C語言的初學者感到迷惑。

    1.1  什么是局部程序塊(local block)?
    局部程序塊是指一對大括號({})之間的一段C語言程序。一個C函數包含一對大括號,這對大括號之間的所有內容都包含在一個局部程序塊中。if語句和swich語句也可以包含一對大括號,每對大括號之間的代碼也屬于一個局部程序塊。此外,你完全可以創建你自己的局部程序塊,而不使用C函數或基本的C語句。你可以在局部程序塊中說明一些變量,這種變量被稱為局部變量,它們只能在局部程序塊的開始部分說明,并且只在說明它的局部程序塊中有效。如果局部變量與局部程序塊以外的變量重名,則前者優先于后者。下面是一個使用局部程序塊的例子:

#include <stdio.h>
void main(void);
void main()
{
     / * Begin local block for function main() * /
     iht test_ var = 10;
     printf("Test variable before the if statement: %d\n", test_var);
     if (test_var>5)
     {
           / * Begin local block for "if" statement * /
           int test_ var = 5;
           printf("Test variable within the if statement: %d\n",
                   test_var);
           {
                 / * Begin independent local block (not tied to
                      any function or keyword) * /
                  int test_var = 0;
                  printf (
                 "Test variable within the independent local block: %d\n",
                 test_var)
      }
      / * End independent local block * /
      printf ("Test variable after the if statement: %d\n", test_var);
}

/*End local block for function main () * /

上例產生如下輸出結果:

Test variable before the if statement: 10
Test variable within the if statement: 5
Test variable within the independent local block:0
Test variable after the if statement: 10

    注意,在這個例子中,每次test_var被定義時,它都要優先于前面所定義的test_var變量。此外還要注意,當if語句的局部程序塊結束時,程序重新進入最初定義的test_var變量的作用范圍,此時test_var的值為10。

    請參見:
    1.2可以把變量保存在局部程序塊中嗎?

    1.2  可以把變量保存在局部程序塊中嗎?
    用局部程序塊來保存變量是不常見的,你應該盡量避免這樣做,但也有極少數的例外。例如,為了調試程序,你可能要說明一個全局變量的局部實例,以便在相應的函數體內部進行測試。為了使程序的某一部分變得更易讀,你也可能要使用局部程序塊,例如,在接近變量被使用的地方說明一個變量有時就會使程序變得更易讀。然而,編寫得較好的程序通常不采用這種方式來說明變量,你應該盡量避免使用局部程序塊來保存變量。

    請參見:
    1.1 什么是局部程序塊?

    1.3  什么時候用一條switch語句比用多條if語句更好?
    如果你有兩個以上基于同一個數字(numeric)型變量的條件表達式,那么最好使用一條switch語句。例如,與其使用下述代碼:
if (x ==l)
     printf ("x is equal to one. \n");
else if (x ==2)
     printf ("x is equal to two. \n");
else if (x = =3)
     printf ("x is equal to three. \n");
else
     printf ("x is not equal to one, two, or three. \n");

不如使用下述代碼,它更易于閱讀和維護:

switch (x)
{
     case 1:  printf ("x is equal to one. \n");
                      break;
     case 2:  printf ("x is equal to two. \n");
                      break
     case 3:  printf ('x is equal to three. \n");
                      break;
     default: printf ("x is not equal to one, two, or three. \n");
                      break;
}

    注意,使用switch語句的前提是條件表達式必須基于同一個數字型變量。例如,盡管下述if語句包含兩個以上的條件,但該例不能使用switch語句,因為該例基于字符串比較,而不是數字比較:

   char *name="Lupto";
    if(!stricmp(name,"Isaac"))    
        printf("Your name means'Laughter'.\n");
    else if(!stricmp(name,"Amy"))
        printf("Your name means'Beloved'.\n");
    else if(!stricmp(name,"Lloyd"))
        printf("Your name means'Mysterious'.\n");
    else
        printf("I haven't a clue as to what your name means.\n");

    請參見:
    1.4 switch語句必須包含default分支嗎7    
    1.5 switch語句的最后一個分支可以不要break語句嗎?

    1. 4 switch語句必須包含default分支嗎?
    不,但是為了進行錯誤檢查或邏輯檢查,還是應該在switch語句中加入default分支。例如,下述switch語句完全合法:

switch (char_code)
{
      case tyt:
      case 'y': printf ( " You answered YES ! \n" )
           break
      case 'N':
      case 'n': printf ("You answered NO!\n");
           break
}

但是,如果一個未知字符被傳遞給這條switch語句,會出現什么情況呢?這時,程序將沒有任何輸出。因此,最好還是加入一個default分支,以處理這種情況:

......
default: printf ("Unknown response : %d\n", char_code);
          break
......

  此外,default分支能給邏輯檢查帶來很多方便。例如,如果用switch語句來處理數目固定的條件,而且認為這些條件之外的值都屬于邏輯錯誤,那么可以加入一個default分支來辨識邏輯錯誤。請看下列:

void move_cursor (int direction)
{
     switch (direction)
     {
           case UP:     cursor_up()
                            break
           case DOWN:   cursor_down()
                            break
           case LEFT:   cursor_left ()
                            break
           case RIGHT:  cursor_ right ( )
                             break
           default:     printf ("Logic error on line number %ld!!! \n",
                                     __ LINE__ )
                             break
     }
}

 
    請參見:    
    1.3 什么時候用一條switch語句比用多條if語句更好?
    1.5 Switch語句的最后一個分支可以不要break語句嗎?

    1.5 switch語句的最后一個分支可以不要break語句嗎?
    盡管switch語句的最后一個分支不一定需要break語句,但最好還是在switch語句的每個分支后面加上break語句,包括最后一個分支。這樣做的主要原因是:你的程序很可能要讓另一個人來維護,他可能要增加一些新的分支,但沒有注意到最后一個分支沒有break語句,結果使原來的最后一個分支受到其后新增分支的干擾而失效。在每個分支后面加上break語句將防止發生這種錯誤并增強程序的安全性。此外,目前大多數優化編譯程序都會忽略最后一條break語句,所以加入這條語句不會影響程序的性能。


    請參見:
    1. 3 什么時候用一條switch語句比用多條if語句更好?
    1. 4 switch語句必須包含default分支嗎?

    1. 6 除了在for語句中之外,在哪些情況下還要使用逗號運算符?
    逗號運算符通常用來分隔變量說明、函數參數、表達式以及for語句中的元素。下例給出了使用逗號的多種方式:
#include <stdio.h>
#include <stdlib.h>
void main(void);

void main ()
{
     / * Here, the comma operator is used to separate
          three variable declarations.  * /
     int i, j, k;
     / * Notice how you can use the comma operator to perform
          multiple initializations on the same line.  * /
     i=0, j=1, k=2;
printf("i= %d, j=%d, k= %d\n", i, j, k);
     / * Here, the comma operator is used to execute three expressions
          in one line: assign k to i, increment j, and increment k.
          The value that i receives is always the rigbtmost expression.  * /
     i= ( j++, k++ );
     printf("i=%d, j=%d, k=%d\n", i, j, k);
     / * Here, the while statement uses the comma operator to
          assign the value of i as well as test it.  * /
     while (i=(rand() % 100), i !=50)
        printf("i is %d, trying again... \n", i)
     printf ("\nGuess what? i is 50!\n" )
}

 請注意下述語句:
     i:(j++,k++)
    這條語句一次完成了三個動作,依次為:
    (1)把k值賦給i。這是因為左值(lvaule)總是等于最右邊的參數,本例的左值等于k。注意,本例的左值不等于k++,因為k++是一個后綴自增表達式,在把k值賦給j之后k才會自增。如果所用的表達式是++k,則++k的值會被賦給i,因為++k是一個前綴自增表達式,k的自增發生在賦值操作之前。
    (2)j自增。
    (3)k自增。
    此外,還要注意看上去有點奇怪的while語句:
while (i=(rand() % 100), i !=50)
  printf("i is %d, trying again... \n");

  這里,逗號運算符將兩個表達式隔開,while語句的每次循環都將計算這兩個表達式的值。逗號左邊是第一個表達式,它把0至99之間的一個隨機數賦給i;第二個表達式在while語句中更常見,它是一個條件表達式,用來判斷i是否不等于50。while語句每一次循環都要賦予i一個新的隨機數,并且檢查其值是否不等于50。最后,i將被隨機地賦值為50,而while語句也將結束循環。

    請參見:
    1.12 運算符的優先級總能保證是“自左至右”或“自右至左”的順序嗎?
    1.13 ++var和var++有什么區別?

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久久久久免费桃花 | 一区二区三区精品在线| 亚洲一区在线看| 国产精品一级在线| www.激情成人| 欧美一区三区四区| 成人欧美一区二区三区白人| 蜜桃av一区二区三区电影| 99久久免费视频.com| 久久综合久色欧美综合狠狠| 亚洲高清视频的网址| 成人开心网精品视频| 欧美一区二区视频在线观看2022| 日韩理论片中文av| 国产99精品视频| 精品欧美黑人一区二区三区| 亚洲一区在线免费观看| www.亚洲精品| 国产日韩欧美综合在线| 午夜成人免费视频| 91丨九色丨尤物| 欧美—级在线免费片| 久久成人av少妇免费| 在线亚洲一区二区| 成人av在线资源网| 精品国产一区二区精华| 天天综合色天天| 欧美亚洲一区二区在线观看| 国产精品久久久久久久久久免费看| 免费观看一级特黄欧美大片| 精品视频免费在线| 一区二区三区日韩精品视频| 99re在线视频这里只有精品| 日本一区二区综合亚洲| 国产精品综合在线视频| 精品99久久久久久| 免费久久精品视频| 777精品伊人久久久久大香线蕉| 亚洲国产欧美一区二区三区丁香婷| 一本到不卡免费一区二区| 亚洲色欲色欲www| 97se亚洲国产综合自在线观| 亚洲欧美日韩国产成人精品影院| 91视频xxxx| 亚洲国产成人porn| 欧美伦理视频网站| 日本午夜精品一区二区三区电影| 日韩一区二区在线免费观看| 九色综合狠狠综合久久| 久久久午夜精品| 成年人午夜久久久| 亚洲欧美日韩国产成人精品影院| 欧美色偷偷大香| 美女国产一区二区三区| 久久精品亚洲乱码伦伦中文 | 亚洲欧美一区二区不卡| 欧美视频在线观看一区二区| 秋霞国产午夜精品免费视频| ww亚洲ww在线观看国产| 91网上在线视频| 日韩高清一区二区| 国产亚洲精品aa| 欧美亚洲日本国产| 韩国一区二区视频| 综合在线观看色| 在线电影院国产精品| 韩国成人福利片在线播放| 国产精品无遮挡| 欧美老肥妇做.爰bbww| 国产在线国偷精品免费看| 最近中文字幕一区二区三区| 337p亚洲精品色噜噜狠狠| 国产精品 欧美精品| 伊人夜夜躁av伊人久久| 精品久久免费看| 日本国产一区二区| 韩国精品主播一区二区在线观看| 最好看的中文字幕久久| 精品对白一区国产伦| 91国产丝袜在线播放| 国产又黄又大久久| 亚洲一区在线电影| 久久久精品人体av艺术| 欧美日韩高清在线| 亚洲精品中文在线影院| 国产99精品在线观看| 亚洲一级在线观看| 国产女人18水真多18精品一级做| 在线视频观看一区| 国产传媒日韩欧美成人| 日韩精品成人一区二区三区| **网站欧美大片在线观看| 欧美电影免费提供在线观看| 色偷偷成人一区二区三区91| 韩国v欧美v亚洲v日本v| 亚洲成人777| 亚洲三级在线免费观看| 国产蜜臀97一区二区三区 | 911精品产国品一二三产区| 不卡在线观看av| 国产乱对白刺激视频不卡| 免费在线观看一区| 亚洲国产成人高清精品| 亚洲精品乱码久久久久久日本蜜臀| www国产成人免费观看视频 深夜成人网| 欧美日韩精品是欧美日韩精品| www.综合网.com| 成人免费视频caoporn| 国产一区二区三区电影在线观看 | 日韩美女精品在线| 中文在线资源观看网站视频免费不卡| 日韩三级伦理片妻子的秘密按摩| 欧美无砖砖区免费| 精品视频资源站| 欧美中文字幕一区二区三区亚洲| 欧美亚洲综合一区| 偷窥少妇高潮呻吟av久久免费| 国产精品护士白丝一区av| 精品国产免费久久| 欧美成人官网二区| 日韩欧美综合一区| 精品粉嫩超白一线天av| 精品少妇一区二区三区在线播放 | 91亚洲精品久久久蜜桃网站| 成人动漫中文字幕| 91免费观看视频| 在线精品视频小说1| 91看片淫黄大片一级在线观看| 91影视在线播放| 欧美色区777第一页| 91麻豆精品国产91久久久 | 成人高清视频免费观看| 成人在线综合网| 91丨porny丨中文| 欧美性大战xxxxx久久久| 91麻豆国产自产在线观看| 欧美激情综合网| 亚洲国产精品二十页| 中文字幕一区二区三区av| 亚洲乱码国产乱码精品精的特点| 一区二区三区四区五区视频在线观看| 亚洲综合激情另类小说区| 日韩国产成人精品| 狠狠色丁香婷综合久久| 成人av网站大全| 欧洲一区在线电影| 欧美一区二区三级| 欧美国产日韩亚洲一区| 亚洲综合在线电影| 麻豆视频观看网址久久| 99久久免费精品| 欧美一卡2卡3卡4卡| 国产精品乱码人人做人人爱| 亚洲第一综合色| 国产不卡在线视频| 欧美视频在线观看一区| 久久久99久久| 午夜av一区二区三区| 国产精品亚洲а∨天堂免在线| 99re这里只有精品首页| 欧美成人精品1314www| 伊人开心综合网| 精品一区二区三区欧美| 99精品国产一区二区三区不卡 | 精品一区二区影视| av电影天堂一区二区在线| 欧美一区二区三区视频在线观看| 中文字幕精品一区二区三区精品| 午夜视频一区二区| 成人黄色在线看| 欧美电影免费观看高清完整版在线 | 欧美成人vps| 亚洲激情在线播放| 国产成人精品影视| 欧美精品123区| 18欧美亚洲精品| 国产91色综合久久免费分享| 91精品一区二区三区久久久久久| 亚洲天堂精品视频| 国产精品一区专区| 欧美一三区三区四区免费在线看| 亚洲免费av网站| 成人av在线资源网| 国产午夜久久久久| 美女任你摸久久| 欧美一区二区三区四区五区| 91一区一区三区| 国产日韩欧美在线一区| 日韩国产精品久久| 欧美日韩成人激情| 亚洲最快最全在线视频| 99久久er热在这里只有精品15 | 欧美日韩国产片| 亚洲免费av观看| 色综合亚洲欧洲| 亚洲视频一区在线观看| 成人av在线网| 亚洲欧洲在线观看av| 国产69精品久久久久777| 久久人人爽人人爽|