版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、Date: 04 August 2022C語言程序設計案例教程(四)第1頁,共133頁。Date: 04 August 2022第五章C語言程序設計常用算法冒泡排序第2頁,共133頁。授課要點冒泡排序的思想及實現(xiàn)排序算法的應用 第3頁,共133頁。假設您是一位營養(yǎng)師,有顧客向您索取一份減肥菜譜。前提條件:您熟悉各種食物的熱量問題:保持身材之道第4頁,共133頁。列出各種食物的熱量對各種食物的熱量進行排序選擇熱量低的食物問題分析第5頁,共133頁。問題解決冒泡排序排序過程(假設元素存放在a0an-1中,按遞減排序):(1)比較第一個數(shù)與第二個數(shù),若為逆序a0= aj+1,位置不動;如果 aj a
2、j+1,位置交換,即temp=aj; ai=aj+1; aj+1=temp;步驟3結束后 a5-i中的數(shù)為最小的數(shù)步驟4:讓i=i+1;只要i=4就返回步驟3,將a5-i的值排好。當i=5時執(zhí)行步驟5步驟5:輸出排序結果冒泡排序算法分析:第8頁,共133頁。#include void main() /* 主函數(shù)*/ int i, j, temp, a6; /* 整型變量*/for (i=0; i=5; i+)/* 鍵入6個數(shù),放入a數(shù)組中*/printf(“請輸入食物的熱量a%d=, i);/* 提示*/scanf (%d, &ai);/* 用鍵盤輸入整數(shù)賦給ai*/for ( i=0; i=
3、4; i+)/* 冒泡排序,外層循環(huán)*/for ( j=0; j=4-i; j+ )/* 內層循環(huán)*/* 循環(huán)體,開始*/if ( aj ai+1*/temp = aj;/* 讓 ai 與 ai+1 交換*/aj = aj+1;aj+1 = temp; /* 循環(huán)體結束*/printf(食物按熱量從高到低的順序顯示為:n);for ( i=0; i=5; i+)/* 輸出排序結果*/printf(%dn, ai);/* 格式輸出 ai*/第9頁,共133頁。若將題目改為按從小到大的順序輸出,如何修改程序?若排序的個數(shù)由用戶指定,如何修改程序?小組討論并總結第10頁,共133頁。在數(shù)組排序的基礎
4、上,進一步將一個數(shù)據(jù)插入一個有序數(shù)組中。學生進階練習第11頁,共133頁。 a1 a2 ai-1 ai ana1 a2 ai-1 ai xan數(shù)組中的元素增加1個問題分析第12頁,共133頁。提示數(shù)據(jù)初始化(輸入、排序)輸入待插入數(shù)據(jù)找到待插入位置將待插入位置空出插入數(shù)據(jù)輸出結果第13頁,共133頁。#include void main() /* 主函數(shù)*/ int i, j, temp, a6,x;/* 定義整型變量*/for (i=0; i=5; i+)/* 鍵入6個數(shù),放入a數(shù)組中*/printf(請輸入待排序的數(shù)a%d=, i);/* 提示*/scanf (%d, &ai);/* 用鍵
5、盤輸入整數(shù)賦給ai*/for ( i=0; i=4; i+)/* 冒泡排序,外層循環(huán)*/for ( j=0; j aj+1 )/* 如果 ai ai+1*/temp = aj;/* 讓 ai 與 ai+1 交換*/aj = aj+1;aj+1 = temp; /* 循環(huán)體結束*/for ( i=0; i=5; i+)/* 輸出排序結果*/printf(%dn, ai);/* 格式輸出 ai*/i=0;printf(請輸入您要插入的整數(shù):n);/* 提示*/scanf(%d,&x);/* 用鍵盤輸入要插入的整數(shù)賦給x*/while(iai)/* 循環(huán)查找插入的位置*/i+;for(j=5;j=i
6、;j-)/* 循環(huán)實現(xiàn)元素后移*/aj+1=aj;ai=x;/* 插入元素x*/printf(插入后的序列是:n);for ( i=0; ibi, ai=bi,aik,認為數(shù)組ab 若nk,認為數(shù)組ab 若n=k,認為數(shù)組a=b數(shù)組元素作函數(shù)參數(shù)和普通變量作函數(shù)參數(shù)效果和用法一樣問題1:假設有兩個整型數(shù)組,試編程實現(xiàn)數(shù)組間關系(大于、等于或小于)的輸出。第20頁,共133頁。#include main() int a10,b10,i,n=0,m=0,k=0; printf(Enter array a:n); for(i=0;i10;i+)scanf(%d,&ai); printf(Enter
7、array b:n); for(i=0;i10;i+)scanf(%d,&bi); for(i=0;iy) flag=1; else if(xy) flag=-1; else flag=0; return(flag);問題1解決方案:第21頁,共133頁。模仿練習1、把8、9、5、8、6、4、2、8和9、6、2、3、6、2、1、3這兩組數(shù)保存在兩個一維數(shù)組中(主函數(shù)實現(xiàn)),再把兩個數(shù)組對應 元素的值相減后(自定義函數(shù)實現(xiàn))顯示出來(主函數(shù)實現(xiàn))。2、實現(xiàn)兩個整型變量的值的互換。(假設兩個整型變量是一個長度為2的整型數(shù)組的元素)第22頁,共133頁。模仿1答案#includeint sub(in
8、t x,int y);void main()int a=8,9,5,8,6,4,2,8;int b=9,6,2,3,6,2,1,3;int result,i;for(i=0;i8;i+)result=sub(ai,bi);printf(%dn,result);int sub(int x,int y)return x-y;第23頁,共133頁。#include void swap2(int x,int y) int z; z=x; x=y; y=z;main() int a2=1,2; swap2(a0,a1); printf(a0=%dna1=%dn,a0,a1);值傳遞模仿2答案12a調用前
9、FFAAFFAE12x調用時yFF01FAAC21x交換yFF01FAAC12a返回FFAAFFAE第24頁,共133頁。授課要點數(shù)組元素作函數(shù)參數(shù)數(shù)組名作函數(shù)參數(shù)第25頁,共133頁。模仿1改進#includevoid sub(int x,int y,int n);void main()int a=8,9,5,8,6,4,2,8;int b=9,6,2,3,6,2,1,3;sub(a,b,8);void sub(int x,int y,int n)int i,result;for(i=0;in;i+)result=xi-yi;printf(%dn,result);第26頁,共133頁。問題2
10、:定義一個函數(shù),求全班學生的某門課程總分,并將總分返回到主函數(shù)中輸出。第27頁,共133頁。問題2解決-自定義函數(shù)求總分int sum(int stu , int n) int i; int total=0; for( i=0; in; i+ ) total += stui; return total; 形參用數(shù)組定義, int stu n為數(shù)組長度第28頁,共133頁。 #include float sum(int stu, int n); void main() int score10, i; int total; printf(Input 10 scores:n); for( i=0;
11、i10; i+ ) scanf(%d, &scorei); total=sum(score,10); printf(“sum is:%d, total); int sum(int stu, int n) int i; int total=0; for( i=0; in; i+ ) total += stui; return total; 實參用數(shù)組名.2109score562312.88stu問題2解決形參用數(shù)組定義, int stu 第29頁,共133頁。數(shù)組名作函數(shù)參數(shù)總結地址傳遞在主調函數(shù)與被調函數(shù)分別定義數(shù)組,且類型應一致,實參用數(shù)組名,形參用數(shù)組定義形參、實參數(shù)組名是地址變量第30頁
12、,共133頁。模仿練習1、實現(xiàn)兩個整型變量的值的互換。(假設兩個整型變量是一個長度為2的整型數(shù)組的元素)2、在主函數(shù)輸入8個整數(shù)保存到數(shù)組中,自定義函數(shù)對數(shù)組元素排序,并在主函數(shù)中將排序后的數(shù)組輸出。3、在主函數(shù)輸入10個整數(shù)保存到數(shù)組中,分別定義三個函數(shù)求和、平均值和最大值并返回到主函數(shù)輸出。第31頁,共133頁。12a調用前12ax調用21ax交換21a返回#include void swap2(int x) int z; z=x0; x0=x1; x1=z;main() int a2=1,2; swap2(a); printf(a0=%dna1=%dn,a0,a1);地址傳遞模仿1答案第
13、32頁,共133頁。小組討論并總結數(shù)組元素作函數(shù)參數(shù)時,實參和形參間的傳遞方式是什么?數(shù)組名作函數(shù)參數(shù)時,實參和形參的寫法有什么不同?第33頁,共133頁。數(shù)組元素作函數(shù)參數(shù)是,實參與形參間發(fā)生值傳遞。結論1:第34頁,共133頁。數(shù)組名作函數(shù)參數(shù)時,實參和形參間發(fā)生地址傳遞;在主調函數(shù)與被調函數(shù)分別定義數(shù)組,且類型應一致;形參數(shù)組大小(多維數(shù)組第一維)可不指定,形參數(shù)組名表示地址;結論2:第35頁,共133頁。學以致用尋找你身邊的一個實際問題,用到數(shù)組名作函數(shù)參數(shù)。例如:定義一個函數(shù),實現(xiàn)10個同學身高的比較,從中找出最高身高,并返回到主函數(shù)中輸出。第36頁,共133頁。作業(yè)每人必做將“學生
14、成績管理系統(tǒng)”中的“學生”變量定義成結構體數(shù)組,學生信息的輸入、輸出代碼做出相應的修改。第37頁,共133頁。Date: 04 八月 2022第四章 模塊化程序設計-二維數(shù)組第38頁,共133頁。授課要點二維數(shù)組的定義和引用二維數(shù)組的初始化和賦值二維數(shù)組的簡單應用第39頁,共133頁。問題1:有如下表, 在C程序中如何表示和存儲24684812161012141813151719第40頁,共133頁。假定某班有3名學生期末考試共5門課程,要求輸入每名學生各門成績,計算出每名學生的總分并輸出。問題2 課程學生C語言高數(shù)英語文化基礎體育李軍9075819555陳蘭6062678778王芳85919
15、88873第41頁,共133頁。以上兩個例子有什么共同之處?分析:1、每行都是4個整數(shù),類型一致2、每名學生都有5門課程,成績類型一致第42頁,共133頁。問題解決二維數(shù)組如何定義二維數(shù)組?如何為數(shù)組元素賦值?如何引用數(shù)組元素?第43頁,共133頁。二維數(shù)組的定義和引用二維數(shù)組有兩個下標的數(shù)組類型說明符 數(shù)組名常量表達式1 常量表達式2例如:int a44 ;數(shù)組元素的存放順序原因:內存是一維的二維數(shù)組:按行序優(yōu)先行數(shù)列數(shù)元素個數(shù)=行數(shù)*列數(shù)int a32a01a10a11a20a21014523a00a00 a01a10 a11a20 a21a00 a01 a02 a03a10 a11 a1
16、2 a13a20 a21 a22 a23a30 a31 a32 a33第44頁,共133頁。二維數(shù)組理解例 int a34;20161720181920202120222320089201011201213201415200012002320045200067a00a01a02a03a10a11a12a13a20a21a22a23每個元素ai由包含4個元素的一維數(shù)組組成二維數(shù)組a是由3個元素組成a0a1a2行名014523a01a02a03a10a11a00a13a20a21a22a23a1267101189a0a1a2因此:二維數(shù)組中的每一行,相當于一個一維數(shù)組。或者說,一維數(shù)組是由多個簡單
17、變量組成,而二維數(shù)組是由多個一維數(shù)組組成。第45頁,共133頁。二維數(shù)組的初始化二維數(shù)組元素的初始化分行初始化: 例 int a23=1,2,3,4,5,6;a00a01a02a10a11a12123456全部初始化 例 int a3=1,4,5;a00a01a02a10a11a12100450第一維長度省略初始化 例 int a23=1,2,3,4,5,6;a00a01a02a10a11a12123456全部初始化 例 int a23=1,2,4;a00a01a02a10a11a12124000部分初始化 例 int a3=1,2,3,4,5;a00a01a02a10a11a12123450
18、第一維長度省略初始化第46頁,共133頁。定義一二維數(shù)組,存放下表數(shù)據(jù):模仿練習24684812161012141813151719第47頁,共133頁。數(shù)組的賦值只能對數(shù)組元素單獨操作,不能對數(shù)組整體操作。賦值的兩種方式:int a54;賦值運算符 如:a30=8;輸入函數(shù) 如: for(i=0;i5;i+) for(j=0;j4;j+) scanf(“%d”,&aij); 單獨為每個元素賦值對數(shù)組的整體賦值只能在初始化時進行二維數(shù)組的賦值第48頁,共133頁。二維數(shù)組的遍歷數(shù)組的遍歷一般用二重循環(huán)實現(xiàn)注意下標的取值范圍,不能越界(編譯系統(tǒng)對下標的越界不做檢查)第49頁,共133頁。假定某班
19、有3名學生期末考試共5門課程,要求輸入每名學生各門成績,計算出每名學生的總分并輸出。問題2第50頁,共133頁。#includevoid main()int a36,i,j;for(i=0;i3;i+)ai5=0; /*為每位學生的總分賦初值0*/for(i=0;i3;i+) /*控制多少學生(多少行)*/printf(請輸入第%d個學生5門課程成績:,i+1);for(j=0;j5;j+) /*控制每個學生的課程(每行的列)*/ scanf(“%d”,&aij); ai5+=aij; /*輸入成績加入總分*/printf(學號 總分n);for(i=0;i3;i+)printf(“%3d%6
20、dn”,i+1,ai5); /*假設第i個學生的學號為i*/問題2解決定義3行6列的二維數(shù)組存放學生每門課程成績和總分,每行的最后一列存放總分第51頁,共133頁。學生模仿練習1、定義一個二維數(shù)組存放如下圖形,并輸出。 12345 13579 543213、某班(假設有2人)期中考試3門成績: (1)從鍵盤輸入每個學生成績 (2)求每個學生的總分和平均分 (3)按每個學生的總分求出最高分第52頁,共133頁。小組討論并總結如何保證數(shù)組不越界?有二維數(shù)組: int a55; 其中a0、 a1、 a2、 a3、a4 表示什么?第53頁,共133頁。結論1保證數(shù)組不越界C語言編譯系統(tǒng)并不檢查數(shù)組是否
21、越界。它只給已定義的數(shù)組元素分配內存,超過的部分則依次往后排,至于那些位置的用途是什么,系統(tǒng)是不管的。讀出那些單元一般不會出問題,但如果往那里面寫入數(shù)據(jù)會導致不可預料的錯誤。時刻注意數(shù)組的起始元素下標值和最后元素的下標值第54頁,共133頁。結論2二維數(shù)組中a0、 a1、 a2、 a3、a4 表示什么?a0為二維數(shù)組a的第1行起始地址a1為二維數(shù)組a的第2行起始地址a2為二維數(shù)組a的第3行起始地址a3為二維數(shù)組a的第4行起始地址a4為二維數(shù)組a的第5行起始地址因此:二維數(shù)組中的每一行,相當于一個一維數(shù)組?;蛘哒f,一維數(shù)組是由多個簡單變量組成,而二維數(shù)組是由多個一維數(shù)組組成。 第55頁,共133
22、頁。學以致用尋找你身邊的一個實際問題,用到二維數(shù)組。例如:編寫程序實現(xiàn)功能:求一個34矩陣的所有靠外側的元素值之和。設矩陣為: 38910 a= 25-35 70-14 第56頁,共133頁。作業(yè)每人必做將“學生成績管理系統(tǒng)”中的“學生”變量定義成數(shù)組,學生信息的輸入、輸出代碼做出相應的修改。第57頁,共133頁。Date: 04 八月 2022第四章模 塊 化 程 序 設 計第58頁,共133頁。授課要點字符數(shù)組的定義及初始化字符串的定義及初始化字符串處理函數(shù)第59頁,共133頁。如何在屏幕上顯示如下信息:abcdefghij問題第60頁,共133頁。字符數(shù)組的定義char 字符數(shù)組名稱字符
23、數(shù)組的長度特點:字符數(shù)組的每個存儲單元只能存儲1個字符。如: char str10;則: 數(shù)組str中可以存放10個字符。假設存入的字符分別為:a、b、c、d、e、f、g、h、i、j則這組字符在內存的存儲可能如下:abcdefghijstr第61頁,共133頁。字符數(shù)組的初始化與一維數(shù)組的初始化類似,我們也可以在定義字符數(shù)組的同時就對它進行賦值,即初始化。如: char s5=a, b, c, d, e;則:數(shù)組元素在內存中的存儲如下:abcdes數(shù)組名s是常量,代表數(shù)組所占內存單元的首地址第62頁,共133頁。字符串的定義及初始化字符串 是用一對雙引號括起來的字符序列。雙引號中可以是一個字符
24、, 也可以是多個字符。在C中,沒有專門的字符串變量,它只能通過字符數(shù)組來進行操作。可用如下形式定義一個字符串 char str110=“hello tom”;第63頁,共133頁。字符串在內存中的表示在C中,每個字符串的末尾 系統(tǒng) 都會自動加上一個特殊字符 0, 以方便進行字符串處理。 0是字符串結束標記。如上面定義的字符串 char str12=“hello tom”;在內存中的存儲如下:hellotom0str數(shù)組名str是常量,代表數(shù)組所占內存單元的首地址第64頁,共133頁。字符串的輸入與輸出1、用printf和scanf來進行輸入輸出#include main myfunc();my
25、func() char str100;/定義一個較大的字符數(shù)組用來存儲字符串 printf(Input a string:n); scanf(%s, str); printf(the string is:n); printf(%s, str);第65頁,共133頁。字符串的輸入與輸出2、用gets和puts來進行輸入輸出#include main myfunc();myfunc() char str100;/定義一個較大的字符數(shù)組用來存儲字符串 printf(Input a string:n); gets(str); printf(the string is:n); puts(str);第66
26、頁,共133頁。小組討論并總結gets和scanf輸入字符串時的差別。puts和printf輸出字符串的差別。第67頁,共133頁。gets和scanf輸入字符串時的差別gets 是能夠接收到空格的字符串,到回車字符為止;scanf 不能接收空格,一般遇到空格或回車即停止。如在執(zhí)行時輸入字符串“I want to learn C language well.”用gets可以接收所有字符串, 用scanf只能接收I。故:對于字符串的處理常用字符串處理函數(shù)來操作。第68頁,共133頁。puts和printf輸出字符串的差別puts在輸出字符串時,遇到0會自動終止輸出,并且將0轉換為n來輸出。而pr
27、intf在輸出字符串時,遇到0只是終止輸出,并不會將0轉換為n來輸出。觀察以下代碼的運行結果:void main()char s=hello!;puts(s);puts(s);printf(%s,s);printf(%s,s);第69頁,共133頁。字符串處理函數(shù)1、輸入函數(shù): gets語法形式: gets(str); /*str為已定義好的字符數(shù)組*/ 功能: 從鍵盤接收一個字符串,存儲到數(shù)組str中,并在末尾自動添加上字符串結束標志0。2、輸出函數(shù): puts語法形式: puts(str); /*str為已定義好的字符數(shù)組*/ 功能: 輸出字符串str的內容,并將字符串結束標志0轉換成n輸
28、出。第70頁,共133頁。模仿練習從鍵盤輸入一個字符串,輸出該字符串。第71頁,共133頁。字符串處理函數(shù)3、求字符串長度函數(shù): strlen語法形式: strlen(str); /*str為已定義好的字符數(shù)組*/ 功能: 求字符串str的有效元素的個數(shù),不包括0在內。如:char str100=“study”; int length; length=strlen(str); printf(“%d”, length);則輸出為: 5要注意字符串的長度與數(shù)組的長度的區(qū)別第72頁,共133頁。模仿練習從鍵盤輸入一個字符串,求該字符串的長度。第73頁,共133頁。字符串處理函數(shù)4、字符串連接函數(shù):
29、strcat語法形式: strcat(strSource, strTarget); /*strSource和strTarget為已定義好的兩個字符數(shù)組*/ 功能: 將字符串strTarget連接到strSource字符串的尾部,并在新串末尾自動添加0。如:char strSource100=“study”; char strTarget20=“C Language”; strcat(strSource, strTarget); puts(strSource);則輸出為: studyC Language第74頁,共133頁。模仿練習 從鍵盤輸入兩個字符串保存到數(shù)組a、b中,將字符串b連接到字符串
30、a的末尾。然后輸出連接后的字符串。第75頁,共133頁。字符串處理函數(shù)5、字符串拷貝函數(shù): strcpy語法形式: strcpy(strSource, strTarget); /strSource和strTarget為已定義好的兩個字符數(shù)組 功能: 將字符串strTarget拷貝到strSource字符串中。如:char strSource100=“study”; char strTarget20=“C Language”; strcpy(strSource, strTarget); puts(strSource);則輸出為: C Language第76頁,共133頁。模仿練習 從鍵盤輸入一個
31、字符串保存到數(shù)組a中,定義字符串b,其值與字符串a相同。然后輸出a、b兩個字符串。第77頁,共133頁。字符串處理函數(shù)6、字符串比較函數(shù): strcmp語法形式: strcmp(str1, str2); /*str1和str2為已定義好的兩個字符數(shù)組*/ 功能: 將str1與str2進行比較,若str1大于str2,則返回正值,若str1與str2相等,則返回0,若str1小于str2,則返回負值。如:char str120=“study”; char str220=“student”; int result; result = strcmp(str1, str2); printf(“resu
32、lt=%d”, result);則輸出為: 20第78頁,共133頁。模仿練習 從鍵盤輸入兩個字符串保存到數(shù)組a、b中,比較這兩個字符串的大小。如果ab,顯示“a大于b”如果anum=101結構體指針名-成員名結構體變量名.成員名(*結構體指針名).成員名第106頁,共133頁。小組討論并總結指針定義后為什么必須要賦值才能使用為什么指向變量的指針必須同變量的類型一致int *p;與*p=10中的*有什么區(qū)別使用指針的意義第107頁,共133頁。結論1指針定義后為什么必須要賦值才能使用?指針如果沒有賦值,則指向一個任意的地址,如果使用沒有初始化的指針,很危險,會發(fā)生一些不可預料的后果。第108頁
33、,共133頁。結論2為什么指向變量的指針必須同變量的類型一致?指針變量用來存放地址,使用前要進行初始化,因此要知道其存放什么類型的地址。 一個指針必須指向某一個確定的數(shù)據(jù)類型定義的變量,而不能隨便更改一個指針變量所指向的數(shù)據(jù)類型。具體地說,一個整型指針變量只能指向一個整型變量,一個實型指針只能指向一個實型變量,更不能定義一個萬能型的指針變量(void)既可以指向一種數(shù)據(jù)類型,又可以指向另一種數(shù)據(jù)類型 第109頁,共133頁。結論3int *p;與*p=10中的*有什么區(qū)別?int *p中的*表示定義指針變量p*p=10中的*表示訪問指針變量p指向地址處存放的值第110頁,共133頁。結論3使用
34、指針的意義使程序簡潔、緊湊、高效有效地表示復雜的數(shù)據(jù)結構動態(tài)分配內存得到多于一個的函數(shù)返回值第111頁,共133頁。作業(yè)每人必做1從鍵盤輸入5個整數(shù)到動態(tài)內存區(qū)域,求出其中偶數(shù)之和。2. 定義一個指向“學生”結構體的指針,通過函數(shù)malloc()為一個學生的信息分配空間,通過指針為學號、姓名、4門成績賦值并輸出。第112頁,共133頁。Date: 04 八月 2022第六章 指針-指針與數(shù)組第113頁,共133頁。授課要點指向數(shù)組元素的指針變量指針的運算用指針表示數(shù)組元素第114頁,共133頁。引入:數(shù)組和指針的關系數(shù)組名是表示數(shù)組首地址的地址常量指針變量是存放變量地址的變量第115頁,共13
35、3頁。指向數(shù)組元素的指針變量例 int array10; int *p; p=&array0; / p=array;或 int *p=&array0;或 int *p=array;array0array1array2array3array9.整型指針p&array0p第116頁,共133頁。授課要點指向數(shù)組元素的指針變量指針的運算用指針表示數(shù)組元素第117頁,共133頁。指針的運算指針變量的賦值運算p=&a; (將變量a地址p)p=array; (將數(shù)組array首地址p)p=&arrayi; (將數(shù)組元素地址p)p1=p2; (指針變量p2值p1)不能把一個整數(shù)p,也不能把p的值整型變量如
36、int i, *p; p=1000; () i=p; ()第118頁,共133頁。指針的算術運算指針的算術運算:pi (i為整型數(shù))p+, p-, p+i, p-i, p+=i, p-=i等若p1與p2指向同一數(shù)組,p1-p2=兩指針間元素個數(shù)(p1-p2)/dp1+p2 無意義第119頁,共133頁。指針的算術運算例 p指向short int型數(shù)組,且 p=&a0; 則p+1 指向a1a0a1a2a3a4a5a6a7a8a9a數(shù)組pp+1,a+1p+i,a+ip+9,a+9例 int a10; int *p=&a2; p+; *p=1; 等價于a3=1;例 int a10; int *p1=&a2; int *p2=&a5; 則:p2-p1=3;第120頁,共133頁。有定義:float a10,*p=NULL; 則: p=a; p、p+表示什么? p=&a3; p、p-3、p+3、p- - 表示什么? 模仿練習第121頁,共133頁。授課要點指向數(shù)組元素的指針變量指針的運算用指針表示數(shù)組元素第122頁,共133頁。數(shù)組元素表示方法a0a1a2a3a9.aa+9a+1a+2地址元素下標法a0a1a2a9a0a1a2a3a9.pp+9p+1p+2地址元素指針法*p*(p+1)*(p+2)*(p+9) 變址運算符ai *(a+i)ai
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高中數(shù)學教學中數(shù)學建模思想的實踐課題報告教學研究課題報告
- 全民健康安全無風險聲明書(3篇)
- 汽車維修企業(yè)ISO認證指南(標準版)
- 初中體育教學中運動數(shù)據(jù)分析與個性化訓練方案的課題報告教學研究課題報告
- 企業(yè)視覺形象構建保障責任書3篇
- 工程項目招標與合同管理規(guī)范
- 金融風險管理規(guī)范(標準版)
- 建設項目運營維護責任承諾函(9篇)
- 市場調研與數(shù)據(jù)分析操作指南
- 財務會計核算與管理規(guī)范(標準版)
- 2024年安徽理工大學馬克思主義基本原理概論期末考試模擬試卷
- 2025年醫(yī)院檢驗科主任年終述職報告
- 2025年中考跨學科案例分析模擬卷一(含解析)
- 2025-2026學年人教版(簡譜)(新教材)初中音樂七年級(上冊)期末測試卷附答案(共三套)
- 2025年大學(森林保護)森林病理學期末試題及答案
- (南開中學)重慶市高2026屆高三第五次質量檢測物理試卷(含答案詳解)
- 骨質疏松骨折課件
- 2025年水利工程質量檢測員考試(金屬結構)經典試題及答案
- 2025寧夏賀蘭工業(yè)園區(qū)管委會招聘40人筆試備考試題及答案解析
- 透析充分性及評估
- 糖尿病足病新進展課件
評論
0/150
提交評論