![第4部分常量變量和數(shù)組_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/13/a6ada795-00bc-4120-bb2d-f9ec0a377a47/a6ada795-00bc-4120-bb2d-f9ec0a377a471.gif)
![第4部分常量變量和數(shù)組_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/13/a6ada795-00bc-4120-bb2d-f9ec0a377a47/a6ada795-00bc-4120-bb2d-f9ec0a377a472.gif)
![第4部分常量變量和數(shù)組_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/13/a6ada795-00bc-4120-bb2d-f9ec0a377a47/a6ada795-00bc-4120-bb2d-f9ec0a377a473.gif)
![第4部分常量變量和數(shù)組_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/13/a6ada795-00bc-4120-bb2d-f9ec0a377a47/a6ada795-00bc-4120-bb2d-f9ec0a377a474.gif)
![第4部分常量變量和數(shù)組_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/13/a6ada795-00bc-4120-bb2d-f9ec0a377a47/a6ada795-00bc-4120-bb2d-f9ec0a377a475.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第四部分 常量和變量constants & variables北京交通大學計算機與信息技術(shù)學院 教師: 林友芳本部分內(nèi)容n介紹高級語言中常見的各種常量n數(shù)字常量、字符常量、字符串常量、符號常量、枚舉常量的表示或定義方法n變量n概念,定義方法,命名規(guī)則或規(guī)范nC語言變量的賦值、初始化和使用n變量的屬性n指針變量n構(gòu)造數(shù)據(jù)類型的基本概念n一維數(shù)組、字符數(shù)組n二維數(shù)組初步概念、定義和使用方法n結(jié)構(gòu)體n聯(lián)合北京交通大學計算機與信息技術(shù)學院 教師: 林友芳n運算是計算機程序的各種計算操作n數(shù)據(jù)是程序的運算對象n與代數(shù)運算表達式相仿,高級語言中的運算對象也分為常量和變量,常量和變量都可以出現(xiàn)在表達
2、式中,如ny = x + 5;運算與運算對象一、常量北京交通大學計算機與信息技術(shù)學院 教師: 林友芳1. 常量的概念和分類n常量n程序中直接給定n值在程序運行過程中不可以改變的量。n各種常量n數(shù)字常量n字符常量n字符串常量n符號常量n枚舉常量北京交通大學計算機與信息技術(shù)學院 教師: 林友芳2. 回憶數(shù)字常量n數(shù)字常量n表示參與計算的數(shù)值,既可以是整數(shù),也可以是帶小數(shù)的實數(shù)。n整數(shù)表示方法n十進制 如:90、255n八進制(以0開頭)如:0123n十六進制(以0 x開頭) 如:0 x5a、0 x23ffn實數(shù)表示方法n整數(shù)部分或小數(shù)部分為0時,可以不寫數(shù)字0,如以下表示如:0.12 .23(0.
3、23) 1.45 4.9 6.(6.0)n科學表示法如:0.12E3 5.6E-6 -7.6E12n單精度實數(shù)表示如:4.5f 6.3F 0.123E3f 5.6E-6F實數(shù)類型默認為雙精度實數(shù)北京交通大學計算機與信息技術(shù)學院 教師: 林友芳2. 回憶字符常量n定義n用一對單引號知起來的單個字符n字符分類n可見字符 如:字母、數(shù)字、標點等。n不可見字符 如:控制光標移動、使終端發(fā)出振鈴聲音的各類字符。n表示 如:0 z n t換行符橫向制表符(Tab)北京交通大學計算機與信息技術(shù)學院 教師: 林友芳字符換碼序列換碼序列 含義 換碼序列 含義 a 響鈴符 v 縱向制表符 b 退格符 反斜線 f
4、換頁符 ? 問號 n 換行符 單引號 r 回車符 ” 雙引號 t 橫向制表符北京交通大學計算機與信息技術(shù)學院 教師: 林友芳3. 回憶字符串常量n定義n用一對雙引號(“)引起來的0個或多個連續(xù)的字符,但不包括雙引號。n當字符串中包含雙引號時,需要用”來表示。n舉例n“This is a stringn”n“” is a double quote”n在計算機中存儲時以空字符0結(jié)束,但在字符串常量中不需要直接表示這個空字符。字符串中可以包含換行符表示雙引號北京交通大學計算機與信息技術(shù)學院 教師: 林友芳4. 符號常量n符號常量:用符號代表一定的常量n符號可以是任意的合法標識符,但習慣使用大寫字母和
5、下劃線組成的標識符。n用宏命令#define定義符號常量n#define PI 3也可以定義常量表達式 #define TIMES (NUM/4)n優(yōu)點n有助于提高程序的可讀性n便于記憶和使用n有助于發(fā)現(xiàn)和減少程序中的錯誤n提高程序的可維護性最好根據(jù)常量的用途和含義對常量命名是一個編譯預處理命令,它所定義的符號常量在預編譯階段被替換為對應(yīng)的字符串。必須是已定義過的符號常量北京交通大學計算機與信息技術(shù)學院 教師: 林友芳例/計算并輸出半徑為2.5米的圓的面積#define PI 3ain() printf(“Area = ”, PI * 2.5
6、 * 2.5); return 0;北京交通大學計算機與信息技術(shù)學院 教師: 林友芳5. 枚舉常量n定義n枚舉常量是一種用符號表示的整型數(shù)字常量,且有標識符表示。n使用關(guān)鍵字enum定義nenum A, B, C, D, E = 50, F, G, H, I;nenum JAN = 1, FEB, MAR, APR, MAY, JUN, JLY, AUG, SEP, OCT, NOV, DEC;n如果枚舉常量后面給定了值,則以給定值作為枚舉符對應(yīng)的常量值。n當枚舉符后面沒有給定值,只是一個標識符時,該枚舉常量的值等于其前面枚舉常量的值加1。如果該枚舉常量是一個標識符時且沒有給定值,該枚舉常量的
7、值等于0。北京交通大學計算機與信息技術(shù)學院 教師: 林友芳枚舉量與符號常量的意義n用文字符號的形式表示常量有利于更好地理解程序意義。n例如,程序里兩個0可能會代表不同意義,它們在數(shù)值形式上沒有任何區(qū)分。但是,采用符號常量可提高可讀性,便于理解。n高級語言提供了用符號表示常量的辦法,在程序中統(tǒng)一使用。n好處n使程序更容易修改和閱讀二、變量及其屬性北京交通大學計算機與信息技術(shù)學院 教師: 林友芳1. 變量概念、定義和使用n變量n程序運行過程中可以發(fā)生變化的量n存儲數(shù)據(jù)的命名對象(變量名)n變量名是標識符。n使我們可能通過一個名字來使用存儲單元n變量的特點n變量能保存值,不會丟失。給某變量名是標識符
8、。n變量的值可以變化n變量賦一個值之后,每次使用它總得到這個值,直到下次賦值。n對變量基本操作n賦值(寫)n取值(讀)注意:要遵循命名規(guī)范北京交通大學計算機與信息技術(shù)學院 教師: 林友芳2. 變量的類型和定義n變量有固定的類型,只能保存這個類型的值。n整型變量(保存 int值的變量)n雙精度變量(保存 double 值)n字符變量,n變量定義n變量必須先定義后使用n需要給出變量名和類型。n例nint m;ndouble x;n可以同時定義多個同類型的變量nint k, n, sum, count;nlong double y, z;為什么要給出類型?不給行不行?有不給的嗎?能定義一種變量存什么
9、數(shù)據(jù)都行嗎?北京交通大學計算機與信息技術(shù)學院 教師: 林友芳3. 變量的命名n關(guān)鍵字不能當做變量名n變量的命名最好能反映變量的實際含義n一些行業(yè)規(guī)范里,變量命名一般還應(yīng)反應(yīng)變量的類型,有些變量命名還要反應(yīng)變量的地位(如類屬性、全局變量)n變量命名要求參見編碼規(guī)范北京交通大學計算機與信息技術(shù)學院 教師: 林友芳4. 復合結(jié)構(gòu)內(nèi)的局部變量n復合結(jié)構(gòu)中可以定義局部變量,在內(nèi)部使用n變量定義應(yīng)出現(xiàn)在所有語句之前變量定義序列語句序列n有些C+沒有這個要求n一個復合結(jié)構(gòu)里不能定義多個同名的變量。北京交通大學計算機與信息技術(shù)學院 教師: 林友芳5. 變量的取值與賦值n取值:計算中遇到變量,取其值參與計算nx
10、 + sin(3.2 * y) - pow(x, 2)n賦值n用賦值運算符(=,賦值號)表示n賦值語法nVariable = Expression /賦值表達式nx = 5.0n左邊是賦值目標,右邊是提供值的表達式n賦值運算的主要效果是把表達式的值賦給左邊變量n賦值運算符優(yōu)先級很低。n例nx = 2 + 3 * y北京交通大學計算機與信息技術(shù)學院 教師: 林友芳賦值語句n賦值語句nVariable = Expression;n最基本的語句,完成程序里最重要的操作n程序中一般用賦值語句描述賦值動作n例n重寫由三邊求三角形面積的程序n計算中多次用半周長,定義變量保存這個值,可避免重復計算。北京交通
11、大學計算機與信息技術(shù)學院 教師: 林友芳n變量的最主要用途:變量的最主要用途:保存計算的中間結(jié)果保存計算的中間結(jié)果#include #include int main () double s; s = (3. + 5. + 7.) / 2.; printf(Area: %fn, sqrt(s*(s-3.)*(s-5.)*(s-7.) ); return 0;用于保存中間結(jié)果北京交通大學計算機與信息技術(shù)學院 教師: 林友芳賦值運算符的值與結(jié)合性nVariable = Expression 整體上被稱為賦值表達式n賦值表達式也有值,就是右邊表達式的值。n賦值表達式的值通常不用,但賦值表達式的值也可
12、以用,例n y = (x = 5) + 8;n有時可以用同一表達式為多個變量賦值。ny = (z = (x = 1.0);n賦值運算符的結(jié)合律n從右向左結(jié)合y = z = x = 1.0;簡化北京交通大學計算機與信息技術(shù)學院 教師: 林友芳賦值與類型n給定賦值表達式nVariable = Expressionn左邊變量和右邊的表達值都有類型n規(guī)定n若表達式值與被賦值變量類型不同,該值先轉(zhuǎn)換到變量類型的值,然后賦值。n在前面程序例子里把賦值語句改寫成:ns = (3 + 5 + 7) / 2;n運行時發(fā)現(xiàn)程序的結(jié)果不對,為什么?北京交通大學計算機與信息技術(shù)學院 教師: 林友芳6. 變量初始化n定
13、義變量時指定變量的初始值。n可用數(shù)值或者數(shù)值表達式為的變量做初始化,如ndouble s = (3 + 5 + 7) / 2.0;nlong double x = 4.5L, y = 3.24L;n初始化只能一次對一個變量做北京交通大學計算機與信息技術(shù)學院 教師: 林友芳7. 從鍵盤輸入數(shù)據(jù)到變量n請查閱并預習scanf語句的功能與用法n例#include “stdio.h”main() int n; scanf(“%d”, &n); printf(“輸入的值為:%d”, n); return 0;%d表示輸入整數(shù),請先自學%c, %s, %lf, %f的含義&n表示錄入的數(shù)轉(zhuǎn)
14、換成整數(shù)后放入n中北京交通大學計算機與信息技術(shù)學院 教師: 林友芳8. 賦值符與等于n賦值與數(shù)學中的“等于”完全不同。n例nx = x + 1;n“x = x + 1”在數(shù)學里為矛盾。nC語言中判斷兩個值是否相等,用運算符n=n一定注意不要寫成一個等號北京交通大學計算機與信息技術(shù)學院 教師: 林友芳9. 值的計算順序問題n下面是合法語句nx = 2.0;ny = (x = 3.0) + x;n問題:n執(zhí)行后y 的值是什么?n這個問題沒有明確答案,因為第二個語句沒有語法錯誤,但是定義不明確。n原因nC語言未規(guī)定加法對兩個運算對象的求值順序,這種表達式的結(jié)果沒有定義。北京交通大學計算機與信息技術(shù)學
15、院 教師: 林友芳dValue35.7變量double類型名字變量的存儲單元地址:0 x00002f30 10. 變量的屬性圖示規(guī)定存儲的長度和格式double dValue = 35.7;三、指針變量簡介從信件投遞、找人、找地方到找存儲空間,保存存儲空間地址的方法指針變量簡介北京交通大學計算機與信息技術(shù)學院 教師: 林友芳1. 找到目的地的辦法某宿舍宿舍號某辦公室通信地址同學或快遞根據(jù)宿舍號找到宿舍快遞或郵局根據(jù)通信地址投遞北京交大我校地址根據(jù)地址找到學校網(wǎng)站地址網(wǎng)站通知書上網(wǎng)站上腦子里信封上信封上或腦子里搜索結(jié)果上腦子里手冊上目的地地址地址保存處根據(jù)地址找到網(wǎng)站北京交通大學計算機與信息技術(shù)
16、學院 教師: 林友芳2. 回憶數(shù)據(jù)與存儲空間0100000100000000000000000000000000000000存儲空間:以字節(jié)為單位編號普通字符型變量占8位A一個32位int占用的存儲空間一個float型浮點數(shù)所需占用的存儲空間0 x000000000 xFFFFFFFF存儲空間的編號稱為地址0 x000000010 x00000002北京交通大學計算機與信息技術(shù)學院 教師: 林友芳3. 存儲空間地址之用處與獲取n存儲空間地址用處n知道了地址就可能可以訪問存儲空間:往其中存數(shù)據(jù);使用其中保存的數(shù)據(jù)n存儲空間地址獲取途徑n用&運算符取已知變量所占用的存儲空間地址n使用存儲空
17、間申請功能向操作系統(tǒng)成功申請存儲空間后,相應(yīng)功能會返回得到的存儲空間地址。(此部分內(nèi)容見后續(xù)部分講解)n直接使用一些地址常量,如數(shù)組的起始地址北京交通大學計算機與信息技術(shù)學院 教師: 林友芳4. &運算符說明示例nint n = 10;n則&n代表整型變量n所占用的存儲空間的起始地址。n如圖所示,設(shè)n占用了0 x0012FF70-0 x0012FF73這4個字節(jié)的存儲空間n則&n的值為n0 x0012FF70100 x0012FF70n內(nèi)存空間北京交通大學計算機與信息技術(shù)學院 教師: 林友芳5. 存儲空間地址與保存n計算機中的內(nèi)外存的存儲空間非常大,可以保存大量的不同類
18、別、不用形式的數(shù)據(jù)。n要對這些數(shù)據(jù)進行管理、使用和處理,必須記錄下這些數(shù)據(jù)所處的存儲位置地址,否則無法找到這些數(shù)據(jù)。n在許多高級語言中,提供一類用來記錄存儲空間地址的變量,這種變量一般被稱為指針變量。n注意,因為通過對保存在指針變量中的地址來直接操作存儲空間需要程序員的細心和經(jīng)驗,否則,一些地址值算錯就容易使程序出錯。因此,也有一些高級語言如JAVA不再設(shè)置指針變量,而通過其它機制實現(xiàn)動態(tài)存儲管理。北京交通大學計算機與信息技術(shù)學院 教師: 林友芳6. 指針變量n指針變量n用于保存某種類型的存儲空間的起始地址的變量。n語法: 基類型 * 變量名;n例nint *pInt;ndouble *pDo
19、uble;nchar *pChar;北京交通大學計算機與信息技術(shù)學院 教師: 林友芳7. 指針變量的常見用法示例n示例1nint n;nint *pInt;npInt = &n; /取n的地址放在pInt中n示例2nint *pInt;npInt = (int *)malloc() /申請一塊存儲空間并將其地址存入pInt中;n示例3nint *pInt, narr10; /narr為一個數(shù)組npInt = narr; /使pInt中保存數(shù)據(jù)的起始地址北京交通大學計算機與信息技術(shù)學院 教師: 林友芳8. 間接運算符*n指針的間接運算符: *n如給定表達式*pInt,表示先取指針變量pI
20、nt中所存的地址值addr,然后再將addr所處的整型存儲空間中的值取出來作為表達式的值。n如nint n = 100, m, *p;np = &n;nm = *p + 1; /m的值將為1010X0012FF701000X0012FF700X0012FF68pn1010X0012FF6Cm北京交通大學計算機與信息技術(shù)學院 教師: 林友芳9. 指針變量與存儲單元關(guān)系圖示0X0012FF78指針變量p1550X0012FF78100X0012FF70550X0012FF78每格代表4個字節(jié)int *p1;int n = 55;int *p2;int m = 10;p1 = &n;
21、p2 = &m;0X0012FF700X0012FF740X0012FF780X0012FF7Cmp1p2n*p1的值為55,*p2的值為10問,執(zhí)行 *p1 = 100;會產(chǎn)生什么影響?北京交通大學計算機與信息技術(shù)學院 教師: 林友芳10. 指針變量的類型n指針變量中保存的某種類型存儲空間的地址n存儲單元的地址值是有類型的,如n存儲int值的存儲單元的地址的類型是 int *n存儲double值的存儲單元的地址的類型是double *n存儲char值的存儲單元的地址的類型是char *n不同類型值存儲單元的地址值屬于不同的類型nint * 和 char *屬于不同的類型ndouble
22、 * 和 int * 屬于不同的類型nshort * 和 long * 屬于不同的類型n地址值類型的不同意味著不能將類型不同的地址值賦給基類型不同的指針變量。四、構(gòu)造數(shù)據(jù)類型Constructed Data Types簡單數(shù)據(jù)類型復雜數(shù)據(jù)類型北京交通大學計算機與信息技術(shù)學院 教師: 林友芳1. 復雜數(shù)據(jù)類型描述的需求n如何描述一組類型相同的數(shù)據(jù)?n如何描述圖片?n如何描述游戲中對象,如武器、戰(zhàn)場?n如何描述一個身份證?n如何描述學籍管理系統(tǒng)中的學生?n如何描述地圖?n如何描述一個圍棋棋盤?n如何描述搜索引擎的搜索結(jié)果?n北京交通大學計算機與信息技術(shù)學院 教師: 林友芳2. 復雜數(shù)據(jù)類型的特點n
23、數(shù)據(jù)不是孤立的,都相關(guān)聯(lián)的,數(shù)據(jù)之間具有關(guān)系n一個對象可能具有一組類型相同的數(shù)據(jù)n一個對象可能具有許多不同的屬性n例n給定一組關(guān)鍵詞,可以在搜索引擎上搜索到很多搜索結(jié)果n一個自然人具有許多不同的屬性n一個班級里具有許多學生n一個課堂上既有教師也有學生北京交通大學計算機與信息技術(shù)學院 教師: 林友芳3. 構(gòu)造數(shù)據(jù)類型n構(gòu)造數(shù)據(jù)類型n根據(jù)已定義的一個或多個數(shù)據(jù)類型用構(gòu)造的方法來定義新的數(shù)據(jù)類型。n也就是說,一個構(gòu)造類型的值可以分解成若干個“成員”或“元素”。n每個“成員”都是一個基本數(shù)據(jù)類型或又是一個構(gòu)造類型。北京交通大學計算機與信息技術(shù)學院 教師: 林友芳4. 同類數(shù)據(jù)集合的描述辦法n給定一個集
24、合S = e1, e2, , en,如何用高級語言去描述和使用這樣的集合?n最簡單的辦法n數(shù)組arrayn固定長度的按順序排列的一組相同元素的集合n其它表示辦法考慮的因素n長度不固定n不一定非得在內(nèi)存里挨著放北京交通大學計算機與信息技術(shù)學院 教師: 林友芳5. 具有許多屬性的對象描述辦法n給定現(xiàn)實世界中的一類對象Object,設(shè)其具有屬性集AS = a1, a2, , an,如何去描述這樣的對象?n如,對于人,具有姓名,出生日期,身份證號,籍貫,民族等屬性,如何表示?n在各種高級語言中都提供了不同的表示辦法,如C語言中的struct, PASCAL中的record,各種面向?qū)ο蟪绦蛟O(shè)計語言中的
25、class等五、數(shù)組array數(shù)組的重要意義: 以統(tǒng)一的方式描述一組數(shù)據(jù),從而為方便地對一組數(shù)據(jù)實現(xiàn)統(tǒng)一的數(shù)據(jù)處理奠定基礎(chǔ)。北京交通大學計算機與信息技術(shù)學院 教師: 林友芳1. 數(shù)組的概念、分類和定義n概念n數(shù)組是一種構(gòu)造類型,它是由具有同一種更基本類型的數(shù)據(jù)按順序組織在一起的有序整體。n數(shù)組中的元素通過下標來索引。n按維數(shù)分類n一維數(shù)組n二維數(shù)組n三維數(shù)組n更高維數(shù)組北京交通大學計算機與信息技術(shù)學院 教師: 林友芳2. 數(shù)組的定義n一維數(shù)組定義語法 n ;n如nint a50; ndouble b322;nint c=1,2;n二維數(shù)組定義語法n MNn如nint a34;nint days
26、7=1,2,3,4,5,6,7,0,3,5,7,9,2,1;北京交通大學計算機與信息技術(shù)學院 教師: 林友芳3. 數(shù)組元素編號及存儲a0 a1a2 an-2 an-1 n每個元素的類型都相同n每個元素的類型可以任何合法的類型(基本類型、數(shù)組、指針、結(jié)構(gòu)、)n每個元素在內(nèi)存中按編號順序緊挨著連續(xù)存放C的數(shù)組元素編號規(guī)則(i = 0 n-1),首元素序號為0,依次類推順序編號,i稱為下標。北京交通大學計算機與信息技術(shù)學院 教師: 林友芳4. 多維數(shù)組的定義nint nArr100;nint nTwoDimArr105; 也可以看是一維數(shù)組nint nThreeDimArr356; 也可以看成是一維
27、和二維數(shù)組北京交通大學計算機與信息技術(shù)學院 教師: 林友芳5. 數(shù)組的基本使用規(guī)則n訪問某個數(shù)組元素,使用下標運算符,優(yōu)先級最高。n運算對象是數(shù)組名和括號里表示下標的表達式。n一維數(shù)組使用舉例int narr10, i;i = 5; narr5 = 20; /將第5個元素置成20n二維數(shù)組使用舉例int nTwoDimArr105, i, j;i = 0;j = 2;nTwoDimArrij = 100; /將第0行第2列的元素置成100北京交通大學計算機與信息技術(shù)學院 教師: 林友芳6. 數(shù)組名稱與數(shù)組元素地址計算nC規(guī)定,數(shù)組的名稱代表數(shù)組的起始地址值。n若有定義: int narr10;
28、n則,narr代表整個數(shù)組的起始地址。n取數(shù)組元素的地址的方法為在數(shù)組元素前加&,如n&narri 表示取數(shù)組第i個元素的地址n對于該數(shù)組中的第i個元素,narri的地址為nnarr + i * sizeof(int)nsizeof用于獲取其中的類型或變量的大小。n即假設(shè)narr的值為1000,sizeof(int)為4n則narr3的地址1000 + 12 =1012,即表達式&narr3的值為1012。六、結(jié)構(gòu)體struct具有多個屬性的對象的描述辦法北京交通大學計算機與信息技術(shù)學院 教師: 林友芳1. C的結(jié)構(gòu)體及定義n結(jié)構(gòu)體n將事物或事件的不同屬性組織在一起作為
29、一個整體來對待。n結(jié)構(gòu)體是面向?qū)ο蟪绦蛟O(shè)計中的類的基礎(chǔ)。n結(jié)構(gòu)說明由struct引導,二種基本形式nstruct 成員說明序列 ;nstruct tag member-list declarators;nstruct 類型標記 成員列表 變量聲明;北京交通大學計算機與信息技術(shù)學院 教師: 林友芳2. 實例n校園一卡通系統(tǒng)需要描述每一個用戶的如下信息n用戶ID,姓名,身份證號,性別,卡余額n其中n用戶ID為14位學號n姓名不超過10漢字n身份證號18位n性別用M和F表示男女n卡余額為雙精度浮點數(shù)。北京交通大學計算機與信息技術(shù)學院 教師: 林友芳實例結(jié)構(gòu)體說明struct UserAccount
30、char szUserNO15; char szName20; char szID19; char cGender; double dBalance; User, Users100, *pUser;struct UserAccount char szUserNO15; /用戶ID char szName20; /姓名 char szID19; /身份證號 char cGender; /性別 double dBalance; /卡余額;struct UserAccount User, Users100, *pUser;User為一個普通的結(jié)構(gòu)體變量;Users是一個長度為100的結(jié)構(gòu)體數(shù)組;pU
31、ser是一個指針變量,用于存放該類型結(jié)構(gòu)體變量的所占存儲空間的地址;北京交通大學計算機與信息技術(shù)學院 教師: 林友芳實例圖示用戶ID姓名身份證號性別卡余額08120001 張帥帥110108M0.10結(jié)構(gòu)體類型結(jié)構(gòu)體實例化08120099 李美美350108F500.00struct UserAccount char szUserNO15; char szName20; char szID19; char cGender; double dBalance;struct UserAccount User, Users100, *pUser; 北京交通大學計算機與信息技術(shù)學院 教師: 林友芳4.
32、結(jié)構(gòu)體數(shù)組08120001081200990812000708120007 張帥帥 李美美 趙小飛 羅小花110108350108360108410108MFMF0.10500.0020.0088.20長度為n的結(jié)構(gòu)體(記錄)數(shù)組,其中每個元素是一個結(jié)構(gòu)體(記錄)北京交通大學計算機與信息技術(shù)學院 教師: 林友芳5. 結(jié)構(gòu)體的使用規(guī)則n訪問結(jié)構(gòu)體成員,分量運算符.n結(jié)構(gòu)體變量.結(jié)構(gòu)體成員n例如nUser.cGender = F;nUser.dBalance += 10.2;n結(jié)構(gòu)體變量的地址等價于第一個成員的地址n結(jié)構(gòu)體指針變量用于存放結(jié)構(gòu)體的地址n對于前面的定義,若令pUser = &
33、Users5;n則pUser將保存結(jié)構(gòu)體數(shù)組中的第5個元素的地址n通過結(jié)構(gòu)體指針變量訪問結(jié)構(gòu)體,使用-運算符npUser-cGender = M;npUser-dBalance += 11.5;七、聯(lián)合Union北京交通大學計算機與信息技術(shù)學院 教師: 林友芳1. 定義nunionn形式與struct類似,但是實質(zhì)有很大的不同n提供一種若干個不同的名字共享(共用)一段存儲空間的手段,但是同一時刻只有能一個名字有實際意義。n如如union data int n; double x; char c;使用方法與結(jié)構(gòu)體類似,區(qū)別在于所有成員共享同一段固定長度的存儲空間北京交通大學計算機與信息技術(shù)學院
34、教師: 林友芳 成員 c 的存儲位置和范圍 成員 n 的存儲位置和范圍 聯(lián)合 union data 的表示 成員 x 的存儲位置和范圍 聯(lián)合變量的存儲實現(xiàn)n成員共用同一存儲位置,存儲區(qū)大小由大成員決成員共用同一存儲位置,存儲區(qū)大小由大成員決定。對定。對union data,n是整數(shù),是整數(shù),d是雙精度數(shù),是雙精度數(shù),c是字符。需要足以存放雙精度數(shù)的存儲區(qū)。成員是字符。需要足以存放雙精度數(shù)的存儲區(qū)。成員安排如下圖:安排如下圖:北京交通大學計算機與信息技術(shù)學院 教師: 林友芳聯(lián)合變量的初始化和使用n聯(lián)合變量可以在定義時直接初始化,但這個初始聯(lián)合變量可以在定義時直接初始化,但這個初始化只能對第一個成員做?;荒軐Φ谝粋€成員做。n例例union data u1 = 3, u2 = 5;n聯(lián)合變量使用形式與結(jié)構(gòu)變量相同,可整體賦值、聯(lián)合變量使用形式與結(jié)構(gòu)變量相同,可整體賦值、成員訪問、取地址。如:成員
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 患者轉(zhuǎn)運途中發(fā)生意外的應(yīng)急預案及處理流程
- 科室縮短平均住院日措施
- 個人單位勞動合同范本
- 傳媒合同范本照
- 養(yǎng)牛采購稻草合同范本
- 買二手車合同范本
- 農(nóng)村道路保潔合同范本
- 摩托車發(fā)動機氣門間隙調(diào)整技巧考核試卷
- 光纜行業(yè)標準與規(guī)范考核試卷
- 關(guān)于消防工程承包合同范本
- 商業(yè)銀行的風險審計與內(nèi)部控制
- 2024項目管理人員安全培訓考試題及參考答案AB卷
- 2025年安徽碳鑫科技有限公司招聘筆試參考題庫含答案解析
- 2025年寒假實踐特色作業(yè)設(shè)計模板
- 2024年福建漳州人才發(fā)展集團有限公司招聘筆試參考題庫附帶答案詳解
- JTGT F20-2015 公路路面基層施工技術(shù)細則
- 建筑工程資料歸檔立卷分類表(全)
- 六年級上第二單元知識結(jié)構(gòu)圖
- 溢流堰穩(wěn)定計算
- 馬曉宏_《法語》_第一冊復習(課堂PPT)
- 道路環(huán)衛(wèi)清掃保潔項目應(yīng)急處置預案
評論
0/150
提交評論