第3章 C 語言的基本知識.

Slides:



Advertisements
Similar presentations
C语言程序设计 主讲教师 :张群燕 电话:
Advertisements

电子成绩单项目实现.
第4章 條件判斷與迴圈 Java 2 程式設計入門與應用.
教 师:曾晓东 电 话: E_mail: 计算机软件技术基础 教 师:曾晓东 电 话: E_mail:
C#程序设计案例教程 第3章 程 序 结 构.
第一章 C语言概述 计算机公共教学部.
南京理工大学 第2章 Java基本语法 本章我们将学习Java编程语言的基本语法,包括变量、操作符、表达式、语句、字符串、数组、控制流以及如何使用帮助文档。 使用下面的编程框架: public class Test{ public static void main(String []args){ //以下添加测试代码.
第8章 指针 ● 8.1 指针简介 ● 8.2 指针变量的操作 ● 8.3 数组与指针 ● 8.4 二维数组与指针 ●本章小结 ●本章练习.
编译原理上机实习
第4章 JavaScript脚本语言基础 4.1 JavaScript简介 4.2 JavaScript语法基础
第 5 章 流程控制 (一): 條件分支.
第二章 JAVA语言基础.
第三章 控制结构.
程式設計實作.
CH2 開發環境介紹 最簡單的互動設計 – Arduino一試就上手 孫駿榮、吳明展、盧聰勇.
Class 2 流程控制-選擇敘述與迴圈.
第二章 C# 基础知识.
C++Primer 3rd edition 中文版 Chap 5
流程控制結構 4-1 流程控制與UML活動圖 4-2 程式區塊與主控台基本輸入 4-3 條件控制敘述 4-4 迴圈控制敘述 4-5 巢狀迴圈
编译原理与技术 类型检查 2018/11/21 《编译原理与技术》-类型检查.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
程序设计期末复习 黎金宁
第三章 C++中的C 面向对象程序设计(C++).
2 C++ 的基本語法和使用環境 親自撰寫和執行程式是學好程式語言的不二法門。本章藉由兩個簡單的程式,介紹C++ 程式的基本結構和開發環境,讓初學者能逐漸建立使用C++ 的信心。
PHP 程式流程控制結構.
C语言 程序设计基础与试验 刘新国、2012年秋.
第3讲 C++程序控制结构 3.1 顺序结构 3.2 分支结构 3.3 循环结构 3.4 转向控制 3.5 综合案例分析.
2019/1/17 Java语言程序设计-程序流程 教师:段鹏飞.
C++语言程序设计 第二章 C++简单程序设计.
程序的三种基本结构 if条件分支语句 switch多路开关语句 循环语句 循环嵌套 break,continue和goto语句
第2章 C++流程控制语句 if 语句 switch语句 for语句 while语句 do - while语句 break语句
第三章 C# 基础知识.
第1章 概述 本章要点: C语言程序结构和特点 C语言程序的基本符号与关键字 C语言程序的编辑及运行 学习方法建议:
C++大学基础教程 第3章 C++控制语句 北京科技大学 信息基础科学系.
第二章Java基本程序设计.
C语言概述 第一章.
第1讲 C语言基础 要求: (1) C程序的组成 (2) C语言的标识符是如何定义的。 (3) C语言有哪些基本数据类型?各种基本数
程式結構&語法.
Java變數 2014/6/24.
第2章 数据类型及表达式 本章导读 本章主要知识点 《 C语言程序设计》 (Visual C++ 6.0环境)
4 條件選擇 4.1 程式基本結構 循序式結構 選擇式結構 重複式結構 4-3
第 二 章 数据类型、运算符与表达式.
C++语言程序设计 C++语言程序设计 第三章 控制语句 第十一组 C++语言程序设计.
本节内容 字节对齐.
第二章 Java基本语法 讲师:复凡.
浙江长征职业技术学院—计算机与信息技术系—相方莉制作
C++语言程序设计教程 第2章 数据类型与表达式 第2章 数据类型与表达式 制作人:杨进才 沈显君.
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
第二章 Java语法基础.
第二章 类型、对象、运算符和表达式.
第二章 基本数据类型 ——数据的表示.
Review 1~3.
目标 流程控制 字符串处理 C# 的类和对象 C# 访问修饰符 C# 构造函数和析构函数.
#include <iostream.h>
第二章 Java基本语法 讲师:复凡.
本节内容 指针类型.
第五章 逻辑运算和判断选取控制 §5.1 关系运算符和关系表达式
第1章 数据结构基础概论 本章主要介绍以下内容 数据结构研究的主要内容 数据结构中涉及的基本概念 算法的概念、描述方法以及评价标准.
单片机应用技术 (C语言版) 第4章 C51程序设计入门
PPT注意事项: 当前PPT课件文件必须和提供的源代码文件夹“代码”在同一目录中即不要移动文件夹“代码”的默认位置。
第2章 Java语言基础.
第6章 PHP基本語法介紹.
多重條件選擇敘述
基本資料型態 變數與常數 運算子 基本的資料處理 授課:ANT 日期:2014/03/03.
C#快速導讀 流程控制.
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
第二章 Java基础语法 北京传智播客教育
本节内容 指针类型 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第2章 Arduino编程.
Presentation transcript:

第3章 C 語言的基本知識

μ’nSP™ GCC 的基本資料類型 資 料 類 型 資料長度(位元數) 表示範圍 char 16 -32768~32767 short 資 料 類 型 資料長度(位元數) 表示範圍 char 16 -32768~32767 short int long int 32 -2147483648~2147483647 unsigned char 0~65535 unsigned short unsigned int unsigned long int 0~4294967295 float 以 IEEE 格式表示的 32 位浮點數 double

μ’nSP™ GCC基本的算術運算符號 運 算 子 作 用 +、-、*、/、% 加、減、乘、除、餘數運算 &&、|| 邏輯AND、OR 作 用 +、-、*、/、% 加、減、乘、除、餘數運算 &&、|| 邏輯AND、OR &、|、^、<<、>> 位元運算AND、OR、XOR、左移、右移 >,>=,<,<=,= =,!= 大於、不小於、小於、不大於、等於、不等於 = 指定運算 ? : 條件運算 , 逗號運算 *、& 指標運算 . 分量運算 sizeof 資料位元組數運算 [ ] 陣列指標運算

鍵盤掃描原理圖

使用位元檢測鍵盤值的變化 IOA7 IOA6 IOA5 IOA4 IOA3 IOA2 IOA1 IOA0 原鍵值(old) 0 0 1 0 0 0 1 0 1 1 0 1 新鍵值(new) 0 1 0 0 1 1 1 0 中間變數(temp=old^ new) 0 1 1 0 0 0 1 1 新按鍵(temp&new) 0 0 0 1 釋放鍵(temp&old)

鍵盤掃描的程式 請注意單一“=”和 雙等號“==”的區別,“==”號將只對等式進行測試,而不進行任何指定運算。 ********************************************************************* unsigned int old,new,push,rel,temp,row; void key(void) { for(row=0x10;row<0x100;row<<1) //掃描 *P_IOA_Data=*P_IOA_Data&row; new=(new<<4)| *P_IOA_Data&0x0f; //讀回列信息 } if ( (temp = new^old) >0) /獲取按下和釋放的鍵值資訊 push=temp&new; rel=temp&old; old=new; *********************************************************** 請注意單一“=”和 雙等號“==”的區別,“==”號將只對等式進行測試,而不進行任何指定運算。

順序結構流程圖

選擇結構流程圖

C語言的 if 敘述有三種基本形式 第一種形式為基本形式 第二種形式為 if-else 形式 if(運算式) 敘述; 其語義是:如果運算式的值為真,則執行其後的敘述,否則不執行該敘述。 第二種形式為 if-else 形式 if(運算式) 敘述 1; else 敘述 2; 其語義是:如果運算式的值為真,則執行敘述 1,否則執行敘述 2。

C語言的 if 敘述有三種基本形式 第三種形式為 if-else-if 形式 敘述 1; else if(運算式2) 敘述 2; …… else if(運算式 n) 敘述 n; else 敘述 n+1; 其語義是:依次判斷運算式的值,當出現某個值為真時,則執行其對應的敘述。然後跳到整個 if 敘述之外繼續執行程式。如果所有的運算式均為假,則執行敘述 n。然後繼續執行後續程式。

switch 敘述的一般形式 switch(運算式) { case 常量運算式 1:敘述 1;break; … case 常量運算式 n:敘述 n;break; default :敘述 n+1; } 說明: 每個 case 後的值只能是純量組成的運算式,當 switch 後的運算式的值與某一個常量運算式的值一致時。程式就轉到此 case 後的敘述開始執行,然後遇 break 就退出 switch 敘述。如果沒有一個值與 switch 後的值一致,就執行 default 後的敘述。 各個 case 和 default 出現的次序不影響執行結果,一般情況下,儘量使用出現機率大的 case 放在前面。

迴圈結構流程圖

while 敘述 while 敘述的語義是:計算運算式的值,當值為真(非 0)時,執行迴圈主體敘述。使用 while 敘述應注意以下幾點: 迴圈主體如包括有一個以上的敘述,則必須用{}括起來,組成複合敘述。 應注意迴圈條件的選擇以避免無窮迴圈。

do-while 敘述 do-while 敘述的一般形式為: do 敘述; while(運算式); 其中敘述是迴圈主體,運算式是迴圈條件。 do-while 敘述的特點是在判斷條件是否成立前,先執行迴圈敘述一次。這是與while敘述的一個基本性的區別。

for 敘述 for 敘述的作用是用來表示迴圈次數已知的情況,它的使用格式為: for(運算式一;運算式二;運算式三) 迴圈主體敘述 它的執行過程如下: 1>先求解運算式一。 2>求解運算式二,若其值為 0 則結束迴圈;若其值為非 0 則執行下面的第三步。 3>執行迴圈主體敘述,這個敘述代表一條敘述或一個複合敘述。 4>求解運算式三。 5>轉到第二步去執行。

陣列 一維陣列的定義 型別 陣列名稱[常量運算式]; 例如: int b1[5];表示定義了一個含有5個整數元素、名稱為 b1 的一維陣列。 型別 陣列名稱[常量運算式]; 例如: int b1[5];表示定義了一個含有5個整數元素、名稱為 b1 的一維陣列。 float x[10];定義了一個含有10個單精確度浮點元素、名稱為 x 的一維陣列。

指標 μ’nSPTM GCC 編譯器所認可的指標是16位元的,這點大家撰寫程式時要注意。 指標變數的類型說明 其一般形式為: 型別 *變數名; 其中,*表示這是一個指標變數,變數名即為定義的指標變數名,表示本指標變數所指向的變數的資料類型。

指標變數的設定運算 指標變數初始化定義 把一個變數的位址指向相同資料類型的指標變數 把一個指標變數的值指向相同類型變數的另一個指標變數 int a; int *p=&a; /*把整數變數a的位址設給 p*/ 把一個變數的位址指向相同資料類型的指標變數 int a,*pa; pa=&a; /*把整數變數a的位址給予整數指標變數 pa*/ 把一個指標變數的值指向相同類型變數的另一個指標變數 int a,*pa,*pb; pa=&a; pb=pa; /*把 a 的位址給予指標變數 pb*/ 由於 pa,pb 均為指向整型變數的指標變數,因此可以相互給值。 把陣列的起始位址指向陣列的指標變數 int a[5],*pa; pa=a; (陣列名稱表示陣列的起始位址,故可指向陣列的指標變數 pa) 把字串的起始位址指向字元類型的指標變數 char *pc=“C Language”; 這裏應說明的是並不是把整個字串裝入指標變數,而是把存放該字串的字元陣列的起始位址移入指標變數。 把函數的呼叫位址指向函數的指標變數 int (*pf)();pf=f; /*f 為函數名*/

定義結構的類型 定義一個結構的一般形式為: struct 結構名 { 成員表列 }; 成員表由若干個成員組成,每個成員都是該結構的一個組成部分。對每個成員也必須作類型說明。 struct date { unsigned int month; unsigned int day; unsigned int year; };

定義結構類型變數 先定義結構,再說明結構變數。如: struct date { unsigned int month; unsigned int day; unsigned int year; }; date date1,date2; 說明了兩個變數 date 1 和 date 2 為date結構類型。如果結構變數是總體變數或為靜態變數,則可對它作初始化設定。對局部或自動結構變數不能作初始化設定。

結構指標變數 結構指標變數中的值是所指向的結構變數的起始位址。透過結構指標即可連結該結構變量,這與陣列指標和函數指標的情況是相同的。 結構指標變數說明的一般形式為: struct 結構名 *結構指標變數名; 例如,在前面定義了 date 這個結構,如要說明一個指向 date 的指標變數 pdate,可寫為:struct date *pdate;

結構類型變數的使用 我們對結構進行使用時,我們只能對結構體的成員進行設定、存取和運算。其連結的一般形式為: (*結構指標變數).成員名 或為:結構指標變數->成員名。 例如: (*pdate).month 或者: pdate ->month 應該注意(*pdate)兩側的括弧不可少,因為成員“.”的優先順序高於“*”。如去掉括弧寫作*pdate.month 則等效於*(pdate.month),這樣,意義就完全不對了。

函數的定義形式 型別 函數名(形式參數表列) 形式參數類型說明: {變數定義部分函數體敘述}

形式參數與實際參數 在C語言的程式中,大部分函數都是帶參數函數。所以在呼叫函數與定義函數時存在著資料傳遞。 在定義函數時函數名後括弧內的變數就稱為形式參數。而在呼叫函數時函數名後括弧內的變數被稱為實際參數。

參數傳遞的堆疊呼叫