當前位置:首頁 » 編程語言 » c語言基本概念

c語言基本概念

發布時間: 2024-05-16 21:44:16

『壹』 學習c語言需要掌握哪些基本知識

1.入門程序

#include <stdio.h>
int main()
{
printf("Hello World!");
return 0;
}

2.數據類型

數據類型:

1.基本數據類型:

1.1. 整型:int 4個位元組

1.2. 字元型:char 1個位元組

1.3. 實型(浮點型)

  • 1.3.1.單精度型:float 4個位元組

  • 1.3.2.雙精度型:double 8個位元組

  • 2.構造類型:

    2.1.枚舉類型

    2.2.數組類型

    2.3.結構體類型

    2.4.共用體類型

    3.指針類型:

    4.空類型:

    3.格式化輸出語句

  • %d:十進制整數;

  • %c:單個字元;

  • %s:字元串;

  • %f:6位小數;

  • #include <stdio.h>

  • int main()

  • {

  • int age = 18;

  • float height = 1.85;

  • char unit = 'm';

  • printf("小明今年%d歲 ", age);

  • printf("小明身高%f%c ", height, unit);

  • printf("小明現在在慕課網上學習IT技術 ");

  • return 0;

  • }

  • 學好C++才是入職大廠的敲門磚! 當年要是有這課,我的C++也不至於這樣

    已失效

    4.常量

    值不發生改變的量成為常量;

    定義字元常量(注意後面沒有;)

  • #include <stdio.h>

  • #define POCKETMONEY 10 //定義常量及常量值

  • int main()

  • {

  • printf("小明今天又得到%d元零花錢 ", POCKETMONEY);

  • return 0;

  • }

  • 5.運算符

    5.1.算數運算符:+,-,*,/,%,++,--;前++/--,先運算,再取值.後++/--,先取值,再運算;

    5.2.賦值運算符:

    5.3.關系運算符;

    5.4.邏輯運算符;

    5.5.三目運算符:

  • 表達式1 ? 表達式2 : 表達式3;

  • 6.水仙花數計算

    輸出所有三位數的水仙花數字

    所謂「水仙花數」是指一個三位數,其各位數字立方和等於該數,如:153就是一個水仙花數,153=111+555+333。

  • #include <stdio.h>


  • int main()

  • {

  • //定義三位數num,個位數sd,十位數td,百位數hd

  • int num, sd, td, hd;

  • //循環所有三位數

  • for( num=100 ; num<1000 ; num++ )

  • {

  • //獲取三位數字num百位上的數字

  • hd = num/100 ;

  • //獲取三位數字num十位上的數字

  • td = num/10%10 ;

  • //獲取三位數字num個位上的數字

  • sd = num%10 ;

  • //水仙花數的條件是什麼?

  • if(num ==hd*hd*hd+td*td*td+sd*sd*sd )

  • {

  • printf("水仙花數字:%d ", num);

  • }

  • }

  • return 0;

  • }

  • 7.列印正三角形的*

  • #include <stdio.h>

  • int main()

  • {

  • int i, j, k;

  • for(i=1; i<5; i++)

  • {

  • /* 觀察每行的空格數量,補全循環條件 */

  • for( j=i ; j<5 ; j++ )

  • {

  • printf(" "); //輸出空格

  • }

  • /* 觀察每行*號的數量,補全循環條件 */

  • for( k=0 ; k<2*i-1 ; k++ )

  • {

  • printf("*"); //每行輸出的*號

  • }

  • printf(" "); //每次循環換行

  • }

  • return 0;

  • }

  • 8.臭名遠揚的goto語句

    很少使用

  • #include <stdio.h>

  • int main()

  • {

  • int sum = 0;

  • int i;

  • for(i=1; i<=10; i++)

  • {

  • printf("%d ", i);

  • if(i==3){

  • goto LOOP;//滿足條件就執行goto語句

  • }

  • }

  • //執行goto

  • LOOP:printf("結束for循環了...."); //請選擇合適位置添加標識符

  • return 0;

  • }

  • 9.形參與實參

    形參:形參是在定義函數名和函數體的時候使用的參數,目的是用來接收調用該函數時傳入的參數;

    實參:實參是在調用時傳遞該函數的參數。

    函數的形參和實參具有以下特點:

  • 形參只有在被調用時才分配內存單元,在調用結束時,即刻釋放所分配的內存單元。因此,形參只有在函數內部有效。函數調用結束返回主調函數後則不能再使用該形參變數。

  • 實參可以是常量、變數、表達式、函數等,無論實參是何種類型的量,在進行函數調用時,它們都必須具有確定的值,以便把這些值傳送給形參。因此應預先用賦值等辦法使實參獲得確定值。

  • 在參數傳遞時,實參和形參在數量上,類型上,順序上應嚴格一致,否則會發生類型不匹配」的錯誤。

  • 10.函數返回值注意

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

    11.遞歸

  • #include <stdio.h>


  • int getPeachNumber(int n) //這里要定義n,要不編譯器會報錯!

  • {

  • int num;

  • if(n==10)

  • {

  • return 1;

  • }

  • else

  • {

  • num = (getPeachNumber(n+1)+1)*2;

  • printf("第%d天所剩桃子%d個 ", n, num);

  • }

  • return num;

  • }

  • int main()

  • {

  • int num = getPeachNumber(1);

  • printf("猴子第一天摘了:%d個桃子。 ", num);

  • return 0;

  • }

  • 12.變數存儲類別 !

    12.1.生存周期劃分存儲方式

    C語言根據變數的生存周期來劃分,可以分為靜態存儲方式和動態存儲方式。

    靜態存儲方式:是指在程序運行期間分配固定的存儲空間的方式。靜態存儲區中存放了在整個程序執行過程中都存在的變數,如全局變數。

    動態存儲方式:是指在程序運行期間根據需要進行動態的分配存儲空間的方式。動態存儲區中存放的變數是根據程序運行的需要而建立和釋放的,通常包括:函數形式參數;自動變數;函數調用時的現場保護和返回地址等。

    12.2.存儲類型劃分

    C語言中存儲類別又分為四類:自動(auto)、靜態(static)、寄存器的(register)和外部的(extern) ;

  • 用關鍵字auto定義的變數為自動變數,auto可以省略,auto不寫則隱含定為「自動存儲類別」,屬於動態存儲方式。

  • 用static修飾的為靜態變數,如果定義在函數內部的,稱之為靜態局部變數;如果定義在函數外部,稱之為靜態外部變數。

  • 注意:靜態局部變數屬於靜態存儲類別,在靜態存儲區內分配存儲單元,在程序整個運行期間都不釋放;靜態局部變數在編譯時賦初值,即只賦初值一次;如果在定義局部變數時不賦初值的話,則對靜態局部變數來說,編譯時自動賦初值0(對數值型變數)或空字元(對字元變數)

  • 為了提高效率,C語言允許將局部變數的值放在CPU中的寄存器中,這種變數叫「寄存器變數」,用關鍵字register作聲明。

  • 注意:只有局部自動變數和形式參數可以作為寄存器變數;一個計算機系統中的寄存器數目有限,不能定義任意多個寄存器變數;局部靜態變數不能定義為寄存器變數。

  • 用extern聲明的的變數是外部變數,外部變數的意義是某函數可以調用在該函數之後定義的變數。

  • #includ <stdio.h>

  • //來源公眾號:C語言與CPP編程

  • int main()

  • {

  • //定義外部局部變數

  • extern int x;

  • return 0;

  • }

  • int x=100;

  • 13.內部函數外部函數 !

    在C語言中不能被其他源文件調用的函數稱為內部函數 ,內部函數由static關鍵字來定義,因此又被稱為靜態函數,形式為:

    static [數據類型] 函數名([參數])

    這里的static是對函數的作用范圍的一個限定,限定該函數只能在其所處的源文件中使用,因此在不同文件中出現相同的函數名稱的內部函數是沒有問題的。

    在C語言中能被其他源文件調用的函數稱為外部函數 ,外部函數由extern關鍵字來定義,形式為:

    extern [數據類型] 函數名([參數])

    C語言規定,在沒有指定函數的作用范圍時,系統會默認認為是外部函數,因此當需要定義外部函數時extern也可以省略。 extern可以省略; 14.數組 數組:一塊連續的,大小固定並且裡面的數據類型一致的內存空間, 數組的聲明:數據類型 數組名稱[長度n]

  • 數據類型 數組名稱[長度n] = {元素1,元素2,元素3,......};

  • 數據類型 數組名稱[] = {元素1,元素2,元素3,......};

  • 數類類型 數組名稱[長度n]; 數組名稱[0] = 元素1;數組名稱[1] = 元素2;...... 注意: 1、數組的下標均以0開始; 2、數組在初始化的時候,數組內元素的個數不能大於聲明的數組長度; 3、如果採用第一種初始化方式,元素個數小於數組的長度時,多餘的數組元素初始化為0; 4、在聲明數組後沒有進行初始化的時候,靜態(static)和外部(extern)類型的數組元素初始化元素為0,自動(auto)類型的數組的元素初始化值不確定。

  • 15.數組遍歷

  • #include <stdio.h>


  • int main()

  • {

  • int arr[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};

  • int i;

  • for(i=0;i<10;i++)

  • {

  • printf("%d ",arr[i]);

  • }

  • return 0;

  • }

  • 數組的冒泡排序

  • 冒泡排序的思想:相鄰元素兩兩比較,將較大的數字放在後面,直到將所有數字全部排序。

  • 字元串與數組

  • 在C語言中,是沒有辦法直接定義子字元串數據類型的,需使用數組來定義所要的字元串,形式如下:

  • char 字元串名稱[長度] = "字元串內容";

  • char 字元串名稱[長度] = {'字元串1','字元串2',....,'字元串n',''};

  • 注:

  • []中的長度可以省略不寫;

  • 採用第二種方式最後一個元素必須是'',表示結束;

  • 第二種方式不能寫中文!; 輸出字元串時,要使用:printf("%s",字元數組名);或puts(字元數組名);

  • 16.字元串函數

  • strlen(s):獲取字元串s的長度;

  • strcmp(s1,s2):比較字元串;比較的時候會把字元串轉換成ASCII碼再進行比較,返回結果為0表示s1和s2的ASCII碼值相等,返回結果為1表示s1比s2的ASCII碼大,返回結果為-1表示s1比s2的ACSII碼小;

  • strcpy(s1,s2):字元串拷貝;s2會取代s1中的內容;

  • strcat(s1,s2)將s2拼接到s1後面;注意:s1的length要足夠才可以!

  • atoi(s1)將字元串轉為整數!

  • 17.多維數組

    數據類型 數組名稱[常量表達式1]...[常量表達式n];

    多維數組的初始化與一維數組的初始化類似也是分兩種:

  • 數據類型 數組名稱[常量表達式1][常量表達式2]...[常量表達式n] = {{值1,..,值n},{值1,..,值n},...,{值1,..,值n}};

  • 數據類型 數組名稱[常量表達式1][常量表達式2]...[常量表達式n]; 數組名稱[下標1][下標2]...[下標n] = 值;

  • 多維數組初始化要注意以下事項:

  • 採用第一種始化時數組聲明必須指定列的維數。因為系統會根據數組中元素的總個數來分配空間,當知道元素總個數以及列的維數後,會直接計算出行的維數;

  • 採用第二種初始化時數組聲明必須同時指定行和列的維數。

  • 18.多維度數組的遍歷

    使用嵌套循環

    注意:多維數組的每一維下標均不能越界!

    19.結構體

    C 數組允許定義可存儲相同類型數據項的變數,結構是 C 編程中另一種用戶自定義的可用的數據類型,它允許您存儲不同類型的數據項。

    結構用於表示一條記錄,假設您想要跟蹤圖書館中書本的動態,您可能需要跟蹤每本書的下列屬性:

  • Title

  • Author

  • Subject

  • Book ID

  • 定義結構

    為了定義結構,您必須使用 struct 語句。struct 語句定義了一個包含多個成員的新的數據類型,struct 語句的格式如下:

  • struct tag {

  • member-list

  • member-list

  • member-list

  • ...

  • } variable-list ;

  • tag 是結構體標簽。

    member-list 是標準的變數定義,比如 int i; 或者 float f,或者其他有效的變數定義。

    variable-list 結構變數,定義在結構的末尾,最後一個分號之前,您可以指定一個或多個結構變數。下面是聲明 Book 結構的方式:

  • struct Books

  • {

  • char title[50];

  • char author[50];

  • char subject[100];

  • int book_id;

  • } book;

  • 在一般情況下,tag、member-list、variable-list 這 3 部分至少要出現 2 個。以下為實例:

  • //此聲明聲明了擁有3個成員的結構體,分別為整型的a,字元型的b和雙精度的c

  • //同時又聲明了結構體變數s1

  • //這個結構體並沒有標明其標簽

  • struct

  • {

  • int a;

  • char b;

  • double c;

  • } s1;


  • //此聲明聲明了擁有3個成員的結構體,分別為整型的a,字元型的b和雙精度的c

  • //結構體的標簽被命名為SIMPLE,沒有聲明變數

  • struct SIMPLE

  • {

  • int a;

  • char b;

  • double c;

  • };

  • //用SIMPLE標簽的結構體,另外聲明了變數t1、t2、t3

  • struct SIMPLE t1, t2[20], *t3;


  • //也可以用typedef創建新類型

  • typedef struct

  • {

  • int a;

  • char b;

  • double c;

  • } Simple2;

  • //現在可以用Simple2作為類型聲明新的結構體變數

  • Simple2 u1, u2[20], *u3;

  • 訪問結構成員

    為了訪問結構的成員,我們使用成員訪問運算符(.)。成員訪問運算符是結構變數名稱和我們要訪問的結構成員之間的一個句號。您可以使用 struct 關鍵字來定義結構類型的變數。下面的實例演示了結構的用法:

  • #include <stdio.h>

  • #include <string.h>

  • //來源公眾號:C語言與CPP編程


  • struct Books

  • {

  • char title[50];

  • char author[50];

  • char subject[100];

  • int book_id;

  • };


  • int main( )

  • {

  • struct Books Book1; /* 聲明 Book1,類型為 Books */

  • struct Books Book2; /* 聲明 Book2,類型為 Books */


  • /* Book1 詳述 */

  • strcpy( Book1.title, "C Programming");

  • strcpy( Book1.author, "Nuha Ali");

  • strcpy( Book1.subject, "C Programming Tutorial");

  • Book1.book_id = 6495407;


  • /* Book2 詳述 */

  • strcpy( Book2.title, "Telecom Billing");

  • strcpy( Book2.author, "Zara Ali");

  • strcpy( Book2.subject, "Telecom Billing Tutorial");

  • Book2.book_id = 6495700;


  • /* 輸出 Book1 信息 */

  • printf( "Book 1 title : %s ", Book1.title);

  • printf( "Book 1 author : %s ", Book1.author);

  • printf( "Book 1 subject : %s ", Book1.subject);

  • printf( "Book 1 book_id : %d ", Book1.book_id);


  • /* 輸出 Book2 信息 */

  • printf( "Book 2 title : %s ", Book2.title);

  • printf( "Book 2 author : %s ", Book2.author);

  • printf( "Book 2 subject : %s ", Book2.subject);

  • printf( "Book 2 book_id : %d ", Book2.book_id);


  • return 0;

  • }

  • 學好C++才是入職大廠的敲門磚! 當年要是有這課,我的C++也不至於這樣

    已失效

    20.共用體

    共用體是一種特殊的數據類型,允許您在相同的內存位置存儲不同的數據類型。您可以定義一個帶有多成員的共用體,但是任何時候只能有一個成員帶有值。共用體提供了一種使用相同的內存位置的有效方式。

  • #include <stdio.h>

  • #include <string.h>


  • union Data

  • {

  • int i;

  • float f;

  • char str[20];

  • };


  • int main( )

  • {

  • union Data data;


  • printf( "Memory size occupied by data : %d ", sizeof(data));


  • return 0;

  • }

  • 21.指針

  • #include <stdio.h>


  • int main ()

  • {

  • int var = 20; /* 實際變數的聲明 */

  • int *ip; /* 指針變數的聲明 */


  • ip = &var; /* 在指針變數中存儲 var 的地址 */


  • printf("Address of var variable: %p ", &var );


  • /* 在指針變數中存儲的地址 */

  • printf("Address stored in ip variable: %p ", ip );


  • /* 使用指針訪問值 */

  • printf("Value of *ip variable: %d ", *ip );


  • return 0;

  • }

  • 22.文件讀寫

    寫入文件

  • #include <stdio.h>


  • int main()

  • {

  • FILE *fp = NULL;


  • fp = fopen("/tmp/test.txt", "w+");

  • fprintf(fp, "This is testing for fprintf... ");

  • fputs("This is testing for fputs... ", fp);

  • fclose(fp);

  • }

  • 讀取文件

  • #include <stdio.h>


  • int main()

  • {

  • FILE *fp = NULL;

  • char buff[255];


  • fp = fopen("/tmp/test.txt", "r");

  • fscanf(fp, "%s", buff);

  • printf("1: %s ", buff );


  • fgets(buff, 255, (FILE*)fp);

  • printf("2: %s ", buff );


  • fgets(buff, 255, (FILE*)fp);

  • printf("3: %s ", buff );

  • fclose(fp);


  • }

  • C語言與C++學習路線

    23.排序演算法

    十大經典排序演算法(動態演示+代碼)

    24.查找演算法

    九種查找演算法

    25.面試知識

    C語言與C++面試知識總結

    26.字元串操作

    字元串操作的全面總結

    27.C語言常用標准庫解讀

    C語言常用標准庫解讀

    28. C語言最常用的貪心演算法

    C語言最常用的貪心演算法就這么被攻克了

    29. 常見的C語言內存錯誤及對策

    常見的C語言內存錯誤及對策

    30. C語言實現面向對象的原理

    C語言實現面向對象的原理

    31. C語言/C++內存管理

    看完這篇你還能不懂C語言/C++內存管理?

    32. 再談C語言指針

    再談指針:大佬給你撥開 C 指針的雲霧

    C語言函數指針之回調函數

    C語言指針詳解(文末有福利)

    33. C語言預處理命令

    長文詳解:C語言預處理命令

    34. C語言高效編程與代碼優化

    C語言高效編程與代碼優化

    35. C語言結構體

    C語言之結構體就這樣被攻克了!值得收藏!

    36. 原碼, 反碼, 補碼 詳解

    原碼, 反碼, 補碼 詳解

    37. C語言宏定義

    簡述C語言宏定義的使用

    38. c語言之共用體union、枚舉、大小端模式

    c語言之共用體union、枚舉、大小端模式

『貳』 C語言基礎知識

  •1 C語言程序的結構認識

用一個簡單的c程序例子,介紹c語言的基本構成、格式、以及良好的書寫風格,使讀者對c語言有個初步認識。

例1 計算兩個整數之和的c程序:

1、任何一個c語言程序都必須包括以下格式:

這是c語言的基本結構,任何一個程序都必須包含這個機構。括弧內可以不寫任何內容,那麼該程序將不執行任何結果。

2、main()----在c語言中稱之為「主函數」,一個c程序有且僅有一個main函數,任何一個c程序總是從main函數開始執行,main函數後面的一對圓括弧不能省略。

3、被大括弧{ }括起來的內容稱為main函數的函數體,這部分內容就是計算機要執行的內容。

4、在{  }裡面每一句話後面都有一個分號(;),在c語言中,我們把以一個分號結尾的一句話叫做一個c語言的語句,分號是語句結束的標志。

5、printf(「a=%d,b=%d,sum=%d\n」,a,b,sum); ----通過執行這條c語言系統提供給我們直接使用的屏幕輸出函數,用戶即可看到運行結果,本程序運行後,將在顯示器上顯示如下結果:

6、#include

7、程序中以 /*開頭並且以*/結尾的部分表示程序的注釋部分,注釋可以添加在程序的任何位置,為了提高程序的可讀性而添加,但計算機在執行主函數內容時完全忽略注釋部分,換而言之就是計算機當做注釋部分不存在於主函數中。

   •  2 C程序的生成過程

C程序是先由源文件經編譯生成目標文件,然後經過連接生成可執行文件,如圖所示。

                              編譯過程

 • 3 標識符

在編寫程序時,必須為函數、變數等命名,這個名字稱為標識符。C語言中標識符的命名規則如下:

標識符不能與程序中具有特殊意義的關鍵字相同,不能與用戶編制的函數名、C語言庫函數相同,在程序中各種標識符盡量不要重復,以便區分。選擇變數名和其他標識符時,應注意做到 「見名知義」。

標識符分為如下三類:

1、關鍵字

3、用戶標識符

用戶根據需要自己定義的標識符稱為用戶標識符。無論如何自定義標識符,都必須符合標識符的三條命名規則。

 • 4 常量

在程序運行中,其值不能被改變的量稱為常量。常量有5種類型:整型常量、實型常量、字元常量、字元串常量和符號常量。

(一)數值轉換

數字的四種表現形式:

在計算機內部,數字均以二進制形式表示和存放,用戶輸入的普通十進制數字都要被計算機轉換成二進制才能在計算機內部存儲,同樣計算機的運算結果也為二進制,一般要將其轉換成十進制數再輸出給用戶閱讀,這種轉換通常由計算機自動實現。

(1)將十進制轉換二進制、八進制和十六進制

除法:將十進制數除以2,記錄余數,得到的商繼續除以2,直到商為0,然後將各次相處所得的余數從後往前逆序排列,所得余數數字序列就是該十進制數對應的二進制數。八進制和十六進制轉換方法同上。

例:十進制數13轉換成二進制數的值為1101,轉換八進制為015,轉換成十六進制為D.

(2)將二進制、八進制和十六進制轉換成十進制

乘積求和:將二進制的每一位從低位到高位(右邊為低位,左邊為高位)分別乘以20,21,22。。。。,然後將這些積求和。

例如:(1101)2=(13)10     (317)8=(207)10     (23E)16=(574)10

(3)二進制與八進制、十六進制數之間的相互轉換

(二)整型常量

整型常量有3種形式:十進制整型常量、八進制整型常量和十六進制整型常量。

書寫方式如下:

(三)實型常量

實型常量有兩種表示形式:小數形式和指數形式。

(四)字元常量

(2)由一對單引號括起來,以反斜杠\開頭,後跟若干數字或者字母,比如『\n』,其中「\「是轉義的意思,後面跟不同的字元表示不同的意思,這類字元常量叫轉義字元。具體如圖所示 。

(五)字元串常量

C語言中,以雙引號括起來的,由若干個字元組成的序列即為字元串常量。

例:「ni hao」   「happy」等等。

(六)符號常量

例:計算圓的面積的c程序。

說明:

• 5 變數

變數就是其值可以改變的量。變數要有變數名,在內存中占據一定的存儲單元,存儲單元里存放的是該變數的值。不同類型的變數其存儲單元的大小不同,變數在使用前必須定義。

(一)整型變數

不同的編譯系統對上述四種整型數據所佔用的位數和數值范圍有不同的規定。

類型說明符

說明:

(二)實型變數

C語言中,實型變數分為單精度類型( float )和雙精度類型( double )兩種。如:

在vc中,float 型數據在內存中佔4個位元組(32位),double型數據佔8個位元組。單精度實數提供7位有效數字,雙精度實數提供15~16位有效數字。實型常量不分float型和double型,一個實型常量可以賦給一個float 型或double型變數,但變數根據其類型截取實型常量中相應的有效數字。

注意:實型變數只能存放實型值,不能用整型變數存放實型值,也不能用實型變數存放整型值。

(三)字元變數

字元變數用來存放字元常量,定義形式:

char  變數名;

其中關鍵字char定義字元型數據類型,佔用一個位元組的存儲單元。

將一個字元賦給一個字元變數時,並不是將該字元本身存儲到內存中,而是將該字元對應的ASCII碼存儲到內存單元中。例如,字元 ′A′ 的ASCII碼為65,在內存中的存放形式如下:01000001

由於在內存中字元以ASCII碼存放,它的存儲形式和整數的存儲形式類似,所以C語言中字元型數據與整型數據之間可以通用,一個字元能用字元的形式輸出,也能用整數的形式輸出,字元數據也能進行算術運算,此時相當於對它們的ASCII碼進行運算。

     •6 類型的自動轉換和強制轉換

當同一表達式中各數據的類型不同時,編譯程序會自動把它們轉變成同一類型後再進行計算。轉換優先順序為:

即左邊級別「低「的類型向右邊轉換。具體地說,若在表達式中優先順序最高的數據是double型,則此表達式中的其他數據均被轉換成double型,且計算結果也是double型;若在表達式中優先順序最高的數據是float型,則此表達式中的其他數據均被轉換成float型,且計算結果也是float型。

在做賦值運算時,若賦值號左右兩邊的類型不同,則賦值號右邊的類型向左邊的類型轉換;當右邊的類型高於左邊的類型時,則在轉換時對右邊的數據進行截取。

除自動轉換外,還有強制轉換,表示形式是:

討論:當a值賦值為3.4,b值賦值為2.7,(int)(a+b)和(int)a+b的值分別為多少?

   • 7  C運算符認識

C語言的運算符范圍很廣,可分為以下幾類:

1、算術運算符:用於各類數值運算。包括加(+)、減(-)、乘(*)、除(/)、求余(%)、自增(++)、自減(--)共七種。

2、賦值運算符:用於賦值運算,分為簡單賦值(=)、復合算術賦值(+=,-=,*=,/=,%=)和復合位運算賦值(&=,|=,^=,>>=,<<=)三類共十一種。

3、逗號運算符:用於把若干表達式組合成一個表達式(,)。

4、關系運算符:用於比較運算。包括大於(>)、小於(<)、等於(==)、 大於等於(>=)、小於等於(<=)和不等於(!=)六種。

5、邏輯運算符:用於邏輯運算。包括與(&&)、或(||)、非(!)三種。

6、條件運算符:這是一個三目運算符,用於條件求值(?:)。

7、位操作運算符:參與運算的量,按二進制位進行運算。包括位與(&)、位或(|)、位非(~)、位異或(^)、左移(<<)、右移(>>)六種。

8、指針運算符:用於取內容(*)和取地址(&)二種運算。

9.、求位元組數運算符:用於計算數據類型所佔的位元組數(sizeof)。

10、特殊運算符:有括弧(),下標[],成員(→,.)等幾種。

另外,按參與運算的對象個數,C語言運算符可分為:單目運算符 (如 !)、雙目運算符 (如+,- )和三目運算符 (如 ?  : )。

一、   基本的算術運算符

(1)+(加法運算符或正值運算符,如2+5)。

(2)-(減法運算符或負值運算符,如4-2)。

(3)*(乘法運算符,如3*8)。

(4)/(除法運算符,如11/5)。

/的運算分為兩種情況:

(5)%(模運算符或稱求余運算符,%兩側均應為整型數據,如9%7的值為2)。

需要說明的是:當運算對象為負數時,所得結果隨編譯器不同而不同,在vc中,結果的符號與被除數相同,比如:13%-2值為1,而-15%2值為-1.

二、   算術表達式和運算符的優先順序與結合性

算術表達式是用算術運算符和括弧將運算量(也稱操作數)連接起來的、符合C語言語法規則的表達式。運算對象包括函數、常量和變數等。

在計算機語言中,算術表達式的求值規律與數學中的四則運算的規律類似,其運算規則和要求如下。

(1)在算術表達式中,可使用多層圓括弧,但括弧必須配對。運算時從內層圓括弧開始,由內向外依次計算各表達式的值。

(2)在算術表達式中,對於不同優先順序的運算符,可按運算符的優先順序由高到低進行運算,若表達式中運算符的優先順序相同,則按運算符的結合方向進行運算。

(3)如果一個運算符兩側的操作數類型不同,則先利用自動轉換或強制類型轉換,使兩者具有相同類型,然後進行運算。

三、   自增自減運算符

作用:使變數的值增1或減1。

(1)只有變數才能用自增運算符 (++)和自減運算符(--),而常量或表達式不能用,如10++或(x+y)++都是不合法的。

(2)++和--的結合方向是「自右向左「,如 -i++ ,i的左邊是負號運算符,右邊是自增運算符,負號運算和自增運算都是 「自右向左「結合的,相當於 -(i++)。

在循環語句中常用到自增(減)運算符,在指針中也常用到該運算符,考生要弄清楚「i++」和「++i」及「i--」和「--i」的區別,特別弄清楚表達式的值和變數的值。

例:變數n的初始值為2,則

例:有以下程序

程序運行後的輸出結果是_____

A.12  35  13  35  14  36     B. 12  35  14  35  14  36

C.12  35  14  36  14  36     D. 12  35  14  35  14  35

解析:自增自減運算需要注意區分表達式的值和變數的值,表達式運算後,變數會自增自減運算,表達式和變數變化如下:

     •9 賦值運算符與賦值表達式

一、賦值運算符與賦值表達式

賦值符號 「=「就是賦值運算符,作用是將一個數據賦給一個變數或將一個變數的值賦給另一個變數,由賦值運算符組成的表達式稱為賦值表達式。一般形式為:

變數名 = 表達式

在程序中可以多次給一個變數賦值,每賦一次值,與它相應的存儲單元中的數據就被更新一次,內存中當前的數據就是最後一次所賦值的那個數據。

說明:

a、如果賦值號兩邊的運算對象類型不一致,系統會自動進行類型轉換,轉換的規則:將賦值號右邊表達式的值的類型轉換成賦值號左邊變數的類型,

b、 可以將復製表達式的值再賦值給變數,形成連續賦值。

二、復合的賦值運算符

在賦值運算符之前加上其他運算符可以構成復合賦值運算符。其中與算術運算有關的復合運算符是:+=,-=,*=,/=,%= 。

兩個符號之間不可以有空格,復合賦值運算符的優先順序與賦值運算符的相同。表達式n+=1等價於n=n+1,作用是取變數n中的值增1再賦給變數n,其他復合的賦值運算符的運算規則依次類推。

如求表達a+=a-=a*a 的值,其中a的初值為12 。

步驟:

   •10  逗號運算符和逗號表達式

在c語言中,逗號除了作為分隔符,還可以用作一種運算符----逗號運算符,用逗號運算符將幾個表達式連接起來,例如a=b+c,a=b*c等稱為逗號表達式。

一般形式為:

表達式1 ,表達式2 ,表達式3 , …,表達式n

例:x=2,y=3,z=4

逗號表達式具有從左至右的結合性,即先求解表達式1,然後依次求解表達式2,直到表達式n的值。表達式n的值就是整個逗號表達式的值。上述的逗號表達式的值就是表達式z=4的值4.需要注意的是,逗號運算符是所有運算符中級別最低的。

例:有如下程序段:

程序顯示結果為:y=6,x=6

討論:將y=(x=a+b),(b+c);改為y=((x=a+b),b+c) 的程序結果?

  • 11 關系運算符和關系表達式

一、   C語言中的邏輯值

C語言中的邏輯值只有兩個:真(true)和假(flase)。用非零代表真,用零代表假。因此,對於任意一個表達式,如果它的值為零,就代表一個假值,如果它的值為非零,就代表一個真值。只要值不是零,不管是正數,負數,整數,實數,都代表一個真值。例如-5的邏輯值為真。

二、   關系運算符及其優先次序

C語言提供了6種關系運算符,見表

由兩個字元組成的運算符之間不可以加空格,關系運算符都是雙目運算符。

(1)結合性:自左向右。

(2)優先次序:前4種關系運算符( <,<=,>=,> )的優先順序別相同,後兩種 (==,!=)優先順序相同,且前4種優先順序高於後兩種;關系運算符的優先順序低於算術運算符,高於賦值運算符。

三、   關系表達式

由關系運算符連接而成的表達式稱為關系表達式。

例如:a>b,(a=7)>(b=10)等都是合法的關系表達式。

關系表達式的結果有兩個:0和1,。其中0表示假,1表示真。如果關系表達式成立,則值為真,如果關系表達式不成立,則值為假。

例:變數a的值為5,b的值為6,那麼關系表達式a>b的值為假,即為0.而關系表達式

(a=13)>(b=10)的值為真,即為1。

當關系運算符兩邊值的類型不一致時,若一邊是整型,一邊是實型,系統將自動把整型數轉化為實型數,然後再進行比較。

    •12 邏輯運算符和邏輯表達式

一、   邏輯運算符及其優先順序

C語言提供了3種邏輯運算符,如下表。

二、   邏輯表達式

「&&」和「||」的運算對象有兩個,故它們都是雙目運算符,而!的運算對象只有一個,因此它是單目運算符。邏輯運算舉例如下:

(1)a&&b: 當&&兩邊都為「真」時,表達式a&&b的值才是真。

值得注意的是:在數學中,關系式0

(2)a||b: 當||兩邊有一個為「真」時,表達式a||b的值就是真。

(3)!a:   表示取反,如果a為真,則!A為假,反之亦然。例如!-5的值就為0.

在C語言中,由&&或||組成的邏輯表達式,在某些特定情況下會產生「短路「現象。

(1)x && y && z ,只有當x為真(非0)時,才需要判別y的值;只有x和y都為真時,才需要去判別z的值;只要x為假就不必判別y和z,整個表達式的值為0。口訣:「一假必假」。

例:(!5==1)&&(++i==0)  (!5==1)表達式的值為0,所以計算機運行中就跳過(++i==0)此表達式,(!5==1)&&(++i==0)表達式的值為0.

(2)x||y||z ,只要x的值為真(非零),就不必判別y和z的值,整個表達式的值為1,只有x的值為假,才需要判別y的值,只有x和y的值同時為假才需要判別z的值,口訣:「一真必真」。

   •13 位運算

一、   位運算符

在計算機中,數據都是以二進制數形式存放的,位運算就是指對存儲單元中二進制位的運算。C語言提供6種位運算符。

二、位運算

位運算符 &  |~<<  >>  ∧ 按優先順序從高到低排列的順序是:

位運算符中求反運算「~「優先順序最高,而左移和右移相同,居於第二,接下來的順序是按位與 「&「、按位異或 「∧「和按位或 「|「。順序為~  <<  >>  &  ∧  |  。

例1左移運算符「<<」是雙目運算符。其功能把「<< 」左邊的運算數的各二進位全部左移若干位,由「<<」右邊的數指定移動的位數,高位丟棄,低位補0。

例 2右移運算符「>>」是雙目運算符。其功能是把「>> 」左邊的運算數的各二進位全部右移若干位,「>>」右邊的數指定移動的位數。

應該說明的是,對於有符號數,在右移時,符號位將隨同移動。當為正數時,最高位補0,而為負數時,符號位為1,最高位是補0或是補1 取決於編譯系統的規定。

例 3 設二進制數a是00101101 ,若通過異或運算a∧b 使a的高4位取反,低4位不變,則二進制數b是。

解析:異或運算常用來使特定位翻轉,只要使需翻轉的位與1進行異或操作就可以了,因為原數中值為1的位與1進行異或運算得0 ,原數中值為0的位與1進行異或運算結果得1。而與0進行異或的位將保持原值。異或運算還可用來交換兩個值,不用臨時變數。

所以本題的答案為: 11110000 。

『叄』 C語言指針基本概念及其指針變數的定義是什麼

語言中,指針是一種類型,被稱為「指針類型」。指針類型描述的是一個地址,這個地址指向內存中另外一個對象的位置。簡單地說,指針表示的是它所指向對象的地址。

1、比較point,*point,&point三者的區別
對於int * point;
point:是指針變數,其內容是地址量。
*point:是指針變數的目標變數,即指針指向的那個變數,其內容是數據。
&point:是指指針變數本身所佔據的存儲地址。

2、指針與數組
用指針和數組名在訪問內存中的數據時,他們的表現形式是等價的,因為他們都是地址量。
數組名表示整個數組的首地址,可以看作是固定地址的指針,不能被賦值。
數組名無須賦初值,而指針在使用前必須賦初值。

3、字元指針和字元串
字元串是一個字元數組,字元串以『\0』結束。printf函數的%s格式輸出字元時,是從給定的地址開始,到遇上第一個『\0』字元時結束。
對字元指針初始化,是將字元串的首地址賦給指針。
4、指針型函數
所謂指針型函數,即返回值是指針(地址)的函數。
5、多級指針
指向指針的指針(**p)就是二級指針,指向指針的指針的指針(***p)是3級指針。
多級指針類似於間接定址。
6、指向函數的指針
C語言中的函數名表示函數的首地址,即函數執行的人口地址。
定義形式:[存儲類型][數據類型標示符](*指向函數的指針變數名)();
例子: int(*fun)();//指向函數的指針 , int * fun(); //指針型函數,注意(* fun)括弧不能少
7、動態指針
當需要一大片內存的時候,最好使用動態分配。
使用malloc函數:void * malloc(size_t size)。
例子:
int * pn=malloc(10*sizeof(int));
double *pd=malloc(10*sizeof(double));

『肆』 C語言程序設計基礎概念

C語言程序設計基礎概念

C語言是近年來非常流行的語言,很多人寧願放棄已經熟悉的其他語言而改用C語言,其原因是C語言有優於其他語言的一系列特點。下面是我搜集的C語言程序設計基礎概念,希望大家認真復習!

1.1 C語言的特點

C語言是近年來非常流行的語言,很多人寧願放棄已經熟悉的其他語言而改用C語言,其原因是C語言有優於其他語言的一系列特點。下面是C語言的主要特點:

(1)語言簡潔、緊湊,並且使用方便、靈活;

(2)運算符豐富;

(3)數據結構豐富;

(4)具有結構化的控制語句;

(5)語法限制不太嚴格,使程序設計比較自由;

(6)C語言允許用戶直接訪問物理地址,能進行位(bit)操作,可以直接對硬體進行操作。

1.2 源程序的書寫規則

C語言的書寫規則。C語言書寫格式自由,一行內可以寫幾個語句,一個語句也可以分寫在多行上。C程序沒有行號,每個語句和數據定義的.最後必須有一個分號。C語言中分號是語句中不可少的,即使是程序中的最後一個語句也應該包含分號。C語言中的注釋可以用〃/*〃用〃*/〃結束,注釋可以在任何允許插入空格符地方插入。C語言中注釋不允許嵌套,注釋可以用西文,也可以用中文。

1.3 C語言的風格

由於C語言對語法限制不太嚴格,為了保證程序的准確性和可讀性,建議在書寫程序採用階梯縮進格式。也就是按如下格式書寫C語言程序:

**********;

*****()

{

**********;

********;

{

******;

……

}

*********;

}

概括起來,C語言程序具有如下的風格:

①C語言程序的函數具體模塊結構風格,使得程序整體結構清晰、層次清楚,為模塊化程序設計提供了強有力的支持。

②C語言的源程序的擴展名都是.C。

③C語言中的注釋格式為:

/*注釋內容*/

/與*之間不允許有空格,注釋部分允許出現在程序中的任何位置。

④C語言中的所有語句都必須以分號“;”結束。

;

『伍』 什麼是C語言

C語言是一種計算機程序設計語言,它既具有高級語言的特點,又具有匯編語言的特點。

『陸』 c語言有哪些基礎知識

C語言是一門面向過程的、抽象化的通用程序設計語言,廣泛應用於底層開發。

C語言能以簡易的方式編譯、處理低級存儲器。C語言是僅產生少量的機器語言以及不需要任何運行環境支持便能運行的高效率程序設計語言。

盡管C語言提供了許多低級處理的功能,但仍然保持著跨平台的特性,以一個標准規格寫出的C語言程序可在包括類似嵌入式處理器以及超級計算機等作業平台的許多計算機平台上進行編譯。

(6)c語言基本概念擴展閱讀:

C語言的字元串其實就是以''字元結尾的char型數組,使用字元型並不需要引用庫,但是使用字元串就需要C標准庫裡面的一些用於對字元串進行操作的函數。

它們不同於字元數組。使用這些函數需要引用頭文件<string.h>。

在C語言中,輸入和輸出是經由標准庫中的一組函數來實現的。在ANSI C中,這些函數被定義在頭文件<stdio.h>;中。

『柒』 C語言入門知識

char a[20],b[20],c[20];上面的a,b,c都是數組變數,在定義時已經為其分配棧內存,而char (*str1)[20],(*str2)[20],(*str3)[20]; 只是分配了4個位元組的內存來保存指針變數(即變數本身),而指針的值(即指向)還沒有,所以這些指針還不能保存數據!--------------char (*str1)[20],(*str2)[20],(*str3)[20]; str1 str2 str3均為指針,都指向長度為20的char數組.你只定義了指針,但是沒有對其進

『捌』 C語言是什麼都包括哪些

C語言是一種計算機程序設計語言,它既具有高級語言的特點,又具有匯編語言的特點。它由美國貝爾研究所的D.M.Ritchie於1972年推出,1978年後,C語言已先後被移植到大、中、小及微型機上,它可以作為工作系統設計語言,編寫系統應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬體的應用程序。它的應用范圍廣泛,具備很強的數據處理能力,不僅僅是在軟體開發上,而且各類科研都需要用到C語言,適於編寫系統軟體,三維,二維圖形和動畫,具體應用比如單片機以及嵌入式系統開發。

C語言包括:數據類型、運算符與表達式、程序結構、順序、選擇、循環、數組、函數、預處理命令、指針、結構體與共用體、文件、位運算;。

『玖』 C璇璦鐭ヨ瘑鎬葷粨

c璇璦姒傝
絎涓絝犮 姒傝堪
1銆 c璇璦鐨勫熀鏈鐭ヨ瘑
1.1銆 c璇璦鐨勬墽琛屾ラ
緙栬緫-紼嬪簭浠g爜鐨勫綍鍏ワ紝鐢熸垚婧愮▼搴*.c
緙栬瘧-璇娉曞垎鏋愭煡閿欙紝緲昏瘧鐢熸垚鐩鏍囩▼搴*.obj
錛堣娉曟垨閫昏緫閿欒錛屼粠絎涓涓寮濮嬫敼錛屽彉閲忓畾涔夛紝璇鍙ユ牸寮忥紝琛ㄨ揪寮忔牸寮忕瓑錛
閾炬帴-涓庡叾浠栫洰鏍囩▼搴忔垨搴撻摼鎺ヨ呴厤錛岀敓鎴愬彲鎵ц岀▼搴*.exe
鎵ц
1.2銆 main鍑芥暟鐨勫熀鏈鐭ヨ瘑
main錛堬級鍑芥暟鐨勪綅緗
c紼嬪簭鎬繪槸浠巑ain( )鍑芥暟寮濮嬫墽琛
涓涓猚紼嬪簭鍙浠ュ寘鍚涓涓涓誨嚱鏁幫紝鍗砿ain錛堬級鍑芥暟錛涗篃鍙浠ュ寘鍚涓涓猰ain()鍑芥暟鍜岃嫢騫插叾瀹冨嚱鏁
1.3銆 c紼嬪簭鐨勭粨鏋
鍑芥暟涓庝富鍑芥暟
紼嬪簭鐢變竴涓鎴栧氫釜鍑芥暟緇勬垚
蹇呴』鏈変竴涓涓斿彧鑳芥湁涓涓涓誨嚱鏁癿ain()
紼嬪簭鎵ц屼粠main寮濮嬶紝鍦╩ain涓緇撴潫錛屽叾浠栧嚱鏁伴氳繃宓屽楄皟鐢ㄥ緱浠ユ墽琛
紼嬪簭璇鍙
C紼嬪簭鐢辮鍙ョ粍鎴
鐢ㄢ滐紱鈥濅綔涓鴻鍙ョ粓姝㈢
娉ㄩ噴
//

/* */ 涓烘敞閲婏紝涓嶈兘宓屽
涓嶄駭鐢熺紪璇戜唬鐮
1.4銆乧 紼嬪簭涔﹀啓鐨勮勫垯
涔犳儻鐢ㄥ皬鍐欏瓧姣嶏紝澶у皬鍐欐晱鎰
涓嶄嬌鐢ㄨ屽彿錛屾棤紼嬪簭琛屾傚康錛氶氬父涓涓璇鍙ュ崰涓琛
鍙浣跨敤絀鴻屽拰絀烘牸
甯哥敤閿榻垮艦鐨勪功鍐欐牸寮忥紱鍚屼竴灞傛$粨鏋勭殑璇鍙ヤ笂涓嬪歸綈銆
絎浜岀珷銆佸熀鏈鏁版嵁綾誨瀷涓庤繍綆
2.1銆乧紼嬪簭鐨勬暟鎹綾誨瀷
娉ㄦ剰綾誨瀷鍜屽彉閲忓惈涔夌殑涓嶅悓錛堢被鍨嬫槸鍥哄畾濂界殑鍚嶅瓧錛屽彉閲忔槸鑷宸辮搗鐨勫悕瀛楋級
鍙橀噺鍗犵敤鐨勫瓨鍌ㄧ┖闂
鏁版嵁綾誨瀷
鍩烘湰綾誨瀷錛氭暣鍨嬨佸瓧絎﹀瀷銆佹誕鐐瑰瀷錛堝崟綺懼害鍨嬶紝鍙岀簿搴﹀瀷錛
鏋勯犵被鍨嬶細鏁扮粍綾誨瀷銆佺粨鏋勪綋綾誨瀷
鎸囬拡綾誨瀷
絀虹被鍨
娉ㄦ剰鍩烘湰綾誨瀷璧嬪垵鍊肩殑鏂瑰紡
鍩烘湰鏁版嵁綾誨瀷鐨勮〃紺哄艦寮
鏁村艦鏁版嵁
鍗佽繘鍒訛細浠ラ潪0鏁板瓧寮澶達紝濡傦細123錛-9錛0
鍏榪涘埗;浠0鏁板瓧寮澶達紝濡傦細0123錛067
鍗佸叚榪涘埗錛氫互0x寮澶達紝濡傦細0x123,0xff
瀹炲瀷鏁版嵁
鍗佽繘鍒訛細蹇呴』甯﹀皬鏁扮偣錛屽傦細123.0錛-9.0
鎸囨暟褰㈠紡;濡傦細1.23E3錛0.9e-2,5e2
瀛楃﹀瀷鏁版嵁
鏅閫氬瓧絎︼細濡傦細鈥檃鈥,鈥2鈥,鈥橦鈥,鈥#鈥
杞涔夊瓧絎︼細濡傦細鈥\n鈥,鈥\167鈥,鈥\xlf,鈥\\鈥
錛堝疄鐜板嚑鍒楃殑瀵歸綈錛氭寚瀹氬藉害銆傚%100\ 鈥\t鈥欏埗琛ㄤ綅錛
錛堝瓧絎︿覆闀垮害銆傗渁bc\n\t\\鈥 strlen 6; sizeof 7錛
鍩烘湰鏁版嵁綾誨瀷鐨勫瓨鍌ㄩ暱搴
鏁村瀷
Int 瀛楄妭鏁 2 浣嶆暟 16 鏁扮殑琛ㄧず鑼冨洿 -32768鈥32767
Short 2 16 -32768鈥32767
Long 4 32 -2147483648鈥2147483647
瀹炲瀷
Float 4 32 3.4e-38---3.4e38
Double 8 64 1.7e-308---1.7e308
瀛楃﹀瀷
Char 1 8 -128----127
2.2銆佹爣璇嗙﹀懡鍚嶈勫垯
C璇璦鏍囧織絎﹀懡鍚嶈勫垯
鏍囪瘑絎︽湁鏁板瓧錛屽瓧姣嶏紝涓嬪垝綰跨粍鎴
鏍囪瘑絎︾殑棣栧瓧絎﹀繀欏諱負瀛楁瘝鍜屼笅鍒掔嚎
鏍囪瘑絎︿笉鑳戒負c璇璦鐨勪繚鐣欏瓧錛堝叧閿瀛楋級
濡傦細auto extern sizeof float static case for struct char goto switch continue in typedef const if union default long unsigned do register void double return else short while enum signed
綆楁湳榪愮畻絎 + - * / %
鍏崇郴榪愮畻絎 > < == >= <= !=
閫昏緫榪愮畻絎 錛 && ||
浣嶈繍綆楃 << >> ~ | ^ &
璧嬪艱繍綆楃 = 鍙婂叾鎵╁睍璧嬪艱繍綆楃
鏉′歡榪愮畻絎 ? :
閫楀彿榪愮畻絎 錛
鎸囬拡榪愮畻絎 * &
奼傚瓧鑺傛暟榪愮畻絎 sizeof
寮哄埗綾誨瀷杞鎹㈣繍綆楃 錛堢被鍨嬶級
鍒嗛噺榪愮畻絎 . ->
涓嬫爣榪愮畻絎 [ ]
鍏朵粬 濡傚嚱鏁拌皟鐢ㄨ繍綆楃()
榪愮畻絎︾殑浼樺厛綰
鐢遍珮鍒頒綆錛氬崟鐩榪愮畻絎︼紝綆楁暟榪愮畻絎︼紝鍏崇郴榪愮畻絎︼紝璧嬪艱繍綆楃
璇存槑錛氬崟鐩榪愮畻絎︼細鑷澧炶繍綆楃︼紝鑷鍑忚繍綆楃︼紝綾誨瀷瑁呮崲榪愮畻絎︺傜粨鍚堟柟鍚戱細鑷鍙寵嚦宸
濡傦細++--I 鍏堚攊.銆
綆楁湳榪愮畻 緇撳悎鏂瑰悜鑷宸﹁嚦鍙
2.3鍩烘湰榪愮畻鍜岃〃杈懼紡
鍏崇郴琛ㄨ揪寮忓拰閫昏緫琛ㄨ揪寮
(a>b)&&(x>y) (a==b)||(x==y) !=a||(a>b)
A&&b.a涓0.涓嶆墽琛宐
A||b a涓1.涓嶆墽琛宐
鍦 c 涓閫昏緫榪愮畻緇撴灉錛1浠h〃鈥滅湡鈥濓紝0浠h〃鈥滃亣鈥濓紱
鍒ゆ柇涓涓琛ㄨ揪寮忔槸鍚︾湡錛0浠h〃鈥滃亣鈥濓紝闈0浠h〃鈥滅湡鈥
鏉′歡琛ㄨ揪寮 閫楀彿琛ㄨ揪寮
濡傦細k=5,k++
閫楀彿鍊間負5錛沰涓6.
琛ㄨ揪寮1錛熻〃杈懼紡2 錛氳〃杈懼紡3
K=5>6 ? 1 : 0
2.4銆佹販鍚堣繍綆楃殑鏁版嵁綾誨瀷杞鎹
2/3+0.5 鍙岀簿搴︽誕鐐瑰瀷
絎涓夌珷銆侀『搴忕粨鏋勭▼搴忚捐
3.1銆乧璇鍙ョ殑鍒嗙被
綆鍗曡鍙
琛ㄨ揪寮忚鍙 琛ㄨ揪寮+鍒嗗彿
絀鴻鍙 鍙鏈夊垎鍙風殑璇鍙
澶嶅悎璇鍙 鐢ㄨ姳鎷鍙峰皢鑻ュ共璇鍙ユ嫭璧鋒潵
嫻佺▼鎺у埗璇鍙
閫夋嫨璇鍙 if ,switch
寰鐜璇鍙 while, do while , for
杞縐昏鍙 break ,continue ,return goto
3.2銆佹牸寮忚緭鍏ュ嚱鏁皊canf
涓鑸褰㈠紡錛歴canf(鈥滄牸寮忔帶鍒跺瓧絎︿覆鈥滐紝鍦板潃鍒楄〃)錛
浣跨敤scanf鍑芥暟鏃訛紝闇瑕佹敞鎰忥細
鏍煎紡瀛楃︾殑涓鏁板繀欏諱笌杈撳叆欏圭殑涓鏁扮浉鍚岋紝鏁版嵁綾誨瀷蹇呴』涓涓瀵瑰簲錛岄潪鏍煎紡瀛楃︿覆錛堣存槑鎬х殑錛夎佸師灝佷笉鍔ㄧ殑杈撳叆銆
杈撳叆瀹炶屾暟鎹鏃訛紝鍙浠ヤ笉甯﹀皬鏁扮偣錛屽嵆鎸夋暣鍨嬫暟鎹杈撳叆
鏁板煎瀷鏁版嵁涓庡瓧絎︽垨瀛楃︿覆娣峰悎杈撳叆鏃訛紝闇瑕佹敞鎰忚緭鍏ユ柟寮忋
3.3銆佹牸寮忚緭鍑哄嚱鏁皃rintf
Printf錛堚滄牸寮忔帶鍒跺瓧絎︿覆鈥滐紝杈撳嚭鍒楄〃錛夛紱
鎸囧畾杈撳嚭鏍煎紡錛岀敱鏍煎紡瀛楃︿覆鍜岄潪鏍煎紡瀛楃︿覆涓ょ嶇粍鎴愶紝闈炴牸寮忓瓧絎︿覆鐓у師鏍瘋緭鍑恆
%[鏍囧織][杈撳嚭鏈灝忓藉害][.綺懼害][闀垮害]綾誨瀷
鏍囧織錛- 宸﹀歸綈錛+ 鍙沖歸綈錛
%f, %d, %c, %s
3.4銆佸叾浠栬緭鍏ヨ緭鍑哄嚱鏁
Putchar getchar puts gets
絎鍥涚珷銆侀夋嫨緇撴瀯紼嬪簭璁捐
If閫夋嫨緇撴瀯
鍗曞垎鏀
If(琛ㄨ揪寮)
璇鍙
鍙屽垎鏀
If(琛ㄨ揪寮)
璇鍙1
Else
璇鍙2
澶氬垎鏀
If 錛堣〃杈懼紡1錛
璇鍙1
Else if錛堣〃杈懼紡2錛
璇鍙2
銆傘傘
Else if(琛ㄨ揪寮弇)
璇鍙m
Else
璇鍙n
Switch錛堣〃杈懼紡錛
{
Case 甯擱噺琛ㄨ揪寮1錛氳鍙1錛沚reak錛
Case 甯擱噺琛ㄨ揪寮2錛氳鍙2錛沚reak錛
銆傘傘
Case 甯擱噺琛ㄨ揪寮弇錛氳鍙m錛沚reak;
Default:璇鍙n錛沚reak;
}
娉ㄦ剰break鐨勪嬌鐢
絎浜旂珷銆佸驚鐜緇撴瀯紼嬪簭璁捐
寰鐜涓夎佺礌
鍒濆嬫潯浠 錛涚粓姝㈡潯浠 錛涘湪鍒濆嬫潯浠跺拰緇堟㈡潯浠墮棿鍙嶅嶅仛鏌愪歡浜嬫儏錛堝驚鐜浣擄級
While(琛ㄨ揪寮)
璇鍙

Do
璇鍙
While(琛ㄨ揪寮);

For(寰鐜浣撳彉閲忚祴鍒濆礆紱寰鐜鏉′歡錛涘驚鐜鍙橀噺澧為噺)
( for( ) ; // ; 榪涜屾椂闂村歡榪熴傚湪淇℃伅浜ゆ崲絳夋椂鐢ㄣ傚俧or(i=0,i<100) ; 浜掔浉閫氳鐨勬椂闂村歡榪熴 Delay )
Break璇鍙 錛氫笉鑳界敤浜庡驚鐜璇鍙ュ拰switch璇鍙ヤ箣澶栫殑浠諱綍鍏朵粬璇鍙ワ紱璺沖嚭寰鐜銆
Continue璇鍙 錛氳煩榪囧驚鐜浣撲腑鍓╀綑鐨勮鍙ヨ屽己琛屾墽琛屼笅涓嬈″驚鐜錛涜煩鍑烘湰嬈″驚鐜銆
絎鍏絝犮佸嚱鏁頒笌緙栬瘧棰勫勭悊
6.1銆佸嚱鏁扮殑瀹氫箟鍜岃皟鐢
綾誨瀷鏍囪瘑絎 鍑芥暟鍚 錛堝艦寮忓弬鏁板垪琛錛
{ 澹版槑閮ㄥ垎
璇鍙
}
渚嬶細
Int max (int x,int y)
{int z;<br>Z=x>y?x:y;<br>Return(z);}
6.2銆佸矓閮ㄥ彉閲忓拰鍏ㄥ矓鍙橀噺
娉ㄦ剰鍑芥暟涓闈欐佸彉閲忕殑瀹氫箟鍜屼嬌鐢
6.3銆佸彉閲忕殑瀛樺偍綾誨瀷
灞閮ㄥ彉閲忕殑瀛樺偍綾誨瀷
鑷鍔ㄥ彉閲(auto) 鍔ㄦ佸瓨鍌
灞閮ㄩ潤鎬佸彉閲忥紙static錛 闈欐佸瓨鍌
瀵勫瓨鍣ㄥ彉閲(register) 闈欐佸瓨鍌
鍏ㄥ矓鍙橀噺鐨勫瓨鍌ㄧ被鍨
鑷鍔ㄥ彉閲忥紙auto錛 鍔ㄦ佸瓨鍌
澶栭儴鍙橀噺 錛坋xtern錛 闈欐佸瓨鍌
鍏ㄥ矓闈欐佸彉閲忥紙static 錛夐潤鎬佸瓨鍌
Extern 澶栭儴寮曠敤
Static 涓嶈兘鐢╡xtern 寮曠敤銆
絎涓冪珷銆佹暟緇
7.1銆佷竴緇存暟緇勭殑瀹氫箟鍜屼嬌鐢
鐗瑰埆闇瑕佹敞鎰忓驚鐜浣撶殑鍒濆礆紝緇堟㈡潯浠
渚嬶細
Main()
{
Int I,a[10];
For(i=0;i<=9;i++)
A=I;
For(i=9;i>=0;i--)
Printf(鈥%d鈥,a);
}
娉ㄦ剰涓嬫爣闂棰
7.2銆佷簩緇存暟緇勭殑瀹氫箟鍜屼嬌鐢
浜岀淮鏁扮粍鐨勫垵濮嬪寲
渚嬪傦細
Int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
Int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
Int a[ ][4]={1,2,3,4,5,6,7,8,9,10,11,12};
Int a[ ][4]={{1,2,3,4},{5},{9,10,11,12}};
渚嬪傦細int a[3][3]={{1},{2},{3}};
鏄瀵規瘡涓琛岀殑絎涓鍒楀厓緔犺祴鍊礆紝鏈璧嬪肩殑鍏冪礌鍙0
7.3銆佸瓧絎︽暟緇勫拰 瀛楃︿覆
瀛楃︿覆鐢ㄥ瓧絎︽暟緇勬潵澶勭悊錛岀粨鏉熸爣蹇楃 鈥\0鈥
濡傦細char c[ ]={鈥淚 am happy鈥潁;
鐢ㄥ瓧絎︿覆甯擱噺浣垮瓧絎︽暟緇勫垵鍊煎寲
Char c[ ]={鈥業鈥,鈥 鈥,鈥檃鈥,鈥檓鈥,鈥 鈥,鈥檋鈥,鈥檃鈥,鈥檖鈥,鈥檖鈥,鈥檡鈥,鈥\0鈥檥;
絎鍏絝犮佹寚閽
8.1銆佸湴鍧鍜屾寚閽堢殑姒傚康
Int I;
Int *i_point;
8.2銆佹寚閽堝彉閲忓拰鍙橀噺鐨勫湴鍧
鎿嶄綔絎︼細* &
8.3銆佹寚閽堝拰涓緇存暟緇
鑻ユ湁瀹氫箟
Int a[10];
Int *p=a;
鍒嗘瀽涓嬮潰琛ㄨ揪寮忕殑鍚涔夛細
A, &a,
*(a+i), a+I,
*(p+i), p+i
A=*(a+i)=*(P+i)
&a=a+i=p+i
8.4銆佹寚閽堜笌瀛楃︿覆
Main()
{
Char string[ ]=鈥滻 love china!鈥;
Printf(鈥%s\n鈥,string);
}
Main()
{ char *string=鈥滻 love china!鈥;
Printf(鈥%s\n鈥,string);
}
8.5銆佹寚閽堝彉閲忎綔涓哄嚱鏁板弬鏁
褰㈠弬鐨勫畾涔夋柟寮忥紱瀹炲弬鐨勫艦寮忥紱鍙傛暟鐨勪紶閫掓柟寮忋
絎涔濈珷銆佺粨鏋勪綋
9.1銆佺粨鏋勪綋綾誨瀷鍜屽彉閲忕殑瀹氫箟
Struct 緇撴瀯浣撳悕
{鎴愬憳鍒楄〃}錛
Struct student
{char stuNO[8];<br>Char name[20];<br>Char sex;<br>Int age;<br>Float score;<br>Char addr[30];<br>};

Stuct student
{char stuNO[8];<br>Char name[20];<br>Char sex;<br>Int age;<br>Float score;<br>Char addr[30];<br>};
Struct student stu1, stu2;
9.2銆佺粨鏋勪綋鍙橀噺鐨勫紩鐢
涓鑸褰㈠紡涓猴細
緇撴瀯浣撳彉閲忓悕.鎴愬憳鍚
9.3銆佺粨鏋勪綋鏁扮粍
緇撴瀯浣撴暟緇 緇撴瀯浣撴暟緇勫厓緔.鎴愬憳鍚
鎸囧悜緇撴瀯浣撶殑鎸囬拡鍙橀噺
錛*p錛.鎴愬憳鍚
p->鎴愬憳鍚
鍏朵粬
Strcpy(瀛楃︽暟緇1錛屽瓧絎︿覆2)
Strcat(瀛楃︽暟緇1錛屽瓧絎︽暟緇2)
Strcmp(瀛楃︿覆1錛屽瓧絎︿覆2)
Strlen錛堝瓧絎︽暟緇勶級

熱點內容
電腦當伺服器怎麼降低功耗 發布:2024-11-27 15:30:45 瀏覽:641
蘋果手機誇克緩存的視頻怎麼轉為本地視頻 發布:2024-11-27 15:24:05 瀏覽:810
linuxm4 發布:2024-11-27 15:15:12 瀏覽:321
演算法交易現狀 發布:2024-11-27 15:05:49 瀏覽:825
搜同網伺服器為什麼登錄不上 發布:2024-11-27 15:05:41 瀏覽:287
如何讓無線網速變快華為安卓手機 發布:2024-11-27 15:04:13 瀏覽:595
cod17編譯著色器卡住c盤滿了 發布:2024-11-27 14:55:56 瀏覽:386
鎖機軟體反編譯 發布:2024-11-27 14:36:02 瀏覽:148
欣才php培訓中心 發布:2024-11-27 14:35:57 瀏覽:938
RDB演算法 發布:2024-11-27 14:26:57 瀏覽:137