freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

c語言:第09章__指針-wenkub.com

2025-07-29 16:08 本頁面
   

【正文】 printf (\n)。 i++) { if (pscore[i] maxscore) maxscore = pscore[i]。 minscore = pscore[0]。 for (i = 0。 pscore = (int *) malloc(num * sizeof(int))。 printf (input the number of student: )。 include include include void main ( ) { int num, i。 釋放動(dòng)態(tài)內(nèi)存的函數(shù) free其原型為: void free (void *block)。 i++) *(p + i) = i + 1。例如有下列程序段: 語言程序設(shè)計(jì)教程 第二版 第九章 指 針 C char i, *p。 其函數(shù)的原型為: void *realloc( void *p, unsigned int size )。 //分配 n個(gè)連續(xù)的整型單元,首地址賦給 pscore pscore = (int *) calloc(n , sizeof(int))。 ?如果分配內(nèi)存失敗,將返回空指針( NULL);如果成功,將返回一個(gè) void類型的連續(xù)存儲(chǔ)空間的首地址。 語言程序設(shè)計(jì)教程 第二版 第九章 指 針 C 語言程序設(shè)計(jì)教程 第二版 第九章 指 針 C (2) calloc 函數(shù) calloc()用于給若干個(gè)同一類型的數(shù)據(jù)項(xiàng)分配連續(xù)的存儲(chǔ)空間,其中每個(gè)數(shù)據(jù)項(xiàng)的長度單位為字節(jié)。 } … … //可對(duì) pscore所指向的單元進(jìn)行其它處理 例如:根據(jù)學(xué)生人數(shù)來建立數(shù)組的問題可以用動(dòng)態(tài)內(nèi)存分配來解決,其方法如下 : 動(dòng)態(tài)分配的內(nèi)存塊 0100 pscore 0100 共 n*sizeof(int)個(gè) 字節(jié)內(nèi)存單元 語言程序設(shè)計(jì)教程 第二版 第九章 指 針 C 關(guān)于 malloc的使用有幾點(diǎn)需強(qiáng)調(diào)一下: ? malloc前面必須要加上一個(gè)指針類型轉(zhuǎn)換符,如前面的 (int *)。n)。 ?返回值:失敗,則返回值是 NULL(空指針)。動(dòng)態(tài)分配的內(nèi)存需要有一個(gè) 指針變量 記錄內(nèi)存的起始地址。 scanf (%d, amp。 用于存放 10個(gè)學(xué)生的成績,然后再進(jìn)行排序。 } 選擇排序 語言程序設(shè)計(jì)教程 第二版 第九章 指 針 C 指針與動(dòng)態(tài)內(nèi)存分配 靜態(tài)內(nèi)存分配 當(dāng)程序中定義變量或數(shù)組以后,系統(tǒng)就會(huì)給變量或數(shù)組按照其數(shù)據(jù)類型及大小來分配相應(yīng)的內(nèi)存單元,這種內(nèi)存分配方式稱為 靜態(tài)內(nèi)存分配 。 運(yùn)行結(jié)果: Beijing Guangzhou Shanghai Tianjin Wuhan for (i = 0。 if (k != i) { ptemp = pcity[i]。 i++) { k = i。 char *pcity[ ] = {Wuhan, Beijing,Shanghai, Tianjin, Guangzhou,}。a39。g39。a39。S39。n39。j39。e39。n39。h39。W39。 39。 39。 39。 39。 39。 39。 39。 0 0 0 0 0 39。 39。 39。 pstr[1] = str[1]。 交換p q 39。 p q 39。 39。 39。 39。 p q 交換 39。 q = p + strlen(p) 1 交換 39。a39。i39。C39。e39。o39。 39。 //先將 ch的值賦給 q指向的字符單元, q再減 1 } printf (%s\n, str)。 //p指向字符串的首地址 q = p + strlen(p) 1。 隨機(jī)值, 有可能指向系統(tǒng)程序區(qū) 假設(shè)首地址為 0001 此時(shí)對(duì) pstr指向的內(nèi)存單元賦值 極其危險(xiǎn)! 為什么?野指針?賦值會(huì)給程序運(yùn)行帶來極大的危險(xiǎn)? 再次提醒: 指針變量只有與內(nèi)存建立聯(lián)系以后才可使用,否則將造成程序運(yùn)行異常,甚至導(dǎo)致系統(tǒng)死機(jī)! 語言程序設(shè)計(jì)教程 第二版 第九章 指 針 C 【例 】 利用字符指針實(shí)現(xiàn)字符串的倒序排列 include include void main ( ) { char str[200], ch。 //野指針操作 pstr = str。 char *pstr。 //將 pstr所指向的字符串復(fù)制到數(shù)組 str中 pstr = str。 語言程序設(shè)計(jì)教程 第二版 第九章 指 針 C 字符指針變量使用注意事項(xiàng) 當(dāng)字符指針指向字符串時(shí),除了可以被賦值之外,與包含字符串的字符數(shù)組沒有什么區(qū)別。 (?) scanf(“%s”,str)。 str=“Hello”。 (?) int a[]={1,2,3,4,5}。 (?) 語言程序設(shè)計(jì)教程 第二版 第九章 指 針 C 字符串與數(shù)組關(guān)系 ? 字符串用一維字符數(shù)組存放 ? 字符數(shù)組具有一維數(shù)組的所有特點(diǎn) ?數(shù)組名是指向數(shù)組首地址的地址常量 ?數(shù)組元素的引用方法可用指針法和下標(biāo)法 ?數(shù)組名作函數(shù)參數(shù)是地址傳遞等 ? 區(qū)別 ?存儲(chǔ)格式:字符串結(jié)束標(biāo)志 ?賦值方式與初始化 ?輸入輸出方式: %s %c char str[]={“Hello!”}。 scanf(“%s”, cp)。 cp=“I love China!”。 與 char str[20]。 string++。 } I l o v e C h i string[0] string[1] string[2] string[3] string[4] string[5] string[6] string[7] string[8] string[9] string string[10] string[11] string[12] string[13] n ! a \0 運(yùn)行結(jié)果: I love China! China! 語言程序設(shè)計(jì)教程 第二版 第九章 指 針 C ? 用字符指針實(shí)現(xiàn) 例: void main ( ) { char *string = “I love China!”。 } 運(yùn)行結(jié)果 (假設(shè)輸入: 3 8 7 6 4): 3 4 6 7 8 語言程序設(shè)計(jì)教程 第二版 第九章 指 針 C 2022 2022 2020 2030 2040 變量所占內(nèi)存單元 (不一定連續(xù) ) a b c d e p[0] 2022 p[1] 2022 p[2] 2020 p[3] 2030 p[4] 2040 指針數(shù)組 p (占用 連續(xù)的存儲(chǔ)單元 ) 注意: 該方法是將 a,b,c,d,e所對(duì)應(yīng)的內(nèi)存單元的值進(jìn)行交換,而指針數(shù)組并無變化。 *p[j] = t。 i++) //利用冒泡法排序 for (j = i + 1。e}。a, amp。 變量性質(zhì) p是數(shù)組名,不是指針變量,不可對(duì) p賦值 P是指針變量,不是數(shù)組名,可對(duì) p賦值 語言程序設(shè)計(jì)教程 第二版 第九章 指 針 C 【 例 】 利用指針數(shù)組對(duì)鍵盤輸入的 5個(gè)整數(shù)進(jìn)行從小到 大排序。 p[0] 2022 p[1] 2022 p[2] 2022 語言程序設(shè)計(jì)教程 第二版 第九章 指 針 C 指針數(shù)組與數(shù)組指針的比較 int * p[3]。 c[1] 39。 p[2] = amp。 p[0] = amp。, 39。 例: char c[3] = {39?;?p = amp。二維數(shù)組名 [整型常量 n],如: p = amp。 j 3。 j++) printf (a[%d][%d] = %d , i, j, p[i][j] )。 for (i = 0。 include void main ( ) { short int a[2][3] = {{1, 2, 3}, {4, 5, 6}}。 int (*p)[3]。a[1][2] (2) a[1]+2 (3) *(a+1)+2 (4)amp。 2022 2022 2022 2022 2022 2022 a[0][0] a[0][1] a[1][0] a[1][1] a[2][0] a[2][1] a[0][2] a[0][3] a[1][2] a[1][3] a[2][2] a[2][3] a[0] a[1] a[2] 2022 2022 2022 a a+1 a+2 二維數(shù)組的理解: 對(duì)二維數(shù)組 int a[3][4], 有 : ? a二維數(shù)組的首地址,即第 0行的首地址 ? a+i第 i行 的首地址 ? a[i] ? *(a+i)第 i行第 0列 的元素地址 ? a[i]+j ? *(a+i)+j 第 i行第 j列 的元素地址 ? *(a[i]+j) ? *(*(a+i)+j) ? a[i][j] 語言程序設(shè)計(jì)教程 第二版 第九章 指 針 C int a[3][4]。a[i] = a[i] = *(a+i) = amp。行地址 a每次加 1,表示指向下一行,而列地址 a[i]每次加 1,表示指向下一列。a[0] a+1 amp。 ? 當(dāng)二維數(shù)組的首地址賦給指針變量 p以后,則訪問某個(gè)元素 a[i][j]可用以下幾種方式來代替: *(p+i*n+j)、 p[i*n+j]、 *(a[0]+i*n+j)。 } } 指向多維數(shù)組的指針 ____數(shù)組指針 利用指針變量不僅可以引用一維數(shù)組,而且也可以引用多維數(shù)組。 i++) { for (j = 0。 p = amp。 i++, p++) printf (%d,*p)。 i++) scanf (%d, p++)。 } 5 8 7 6 2 7 3 0 1 2 3 4 5 6 a p p 6輸出結(jié)果: 5 6 語言程序設(shè)計(jì)教程 第二版 第九章 指 針 C void main ( ) { int i, *p, a[7]。a[1]。(a+1) ( B) a++ ( C) amp。 i 5。 for (i = 0。 i++)
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1