版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第六章作業(yè)第一題簡(jiǎn)述指針變量和一般變量的異同答:指針變量和一般變量同時(shí)變量其值是可以被改變和賦值的,但是指針變量和一般變量不同的是指針變量里所存放的數(shù)據(jù)是某個(gè)變量的地址而不是宏觀上有意義的數(shù)字或字符。但是指針變量的使用和一般變量的使用又有一些是相同的,例如可以直接使用“*”號(hào)運(yùn)算符可以對(duì)指針?biāo)刚淖兞恐苯舆M(jìn)行數(shù)據(jù)操作。例: Int a=3,b=5;Int *p;*p=&a;*p=b; /此處就是將b的值賦給指針p指向的變量 也就是賦給了a(2) 簡(jiǎn)述指針的自運(yùn)算特點(diǎn) 答: 指針變量的自運(yùn)算是指指針的地址運(yùn)算如p+;p-;-p;+pP+n;p-n;(注:p是指針變量 n為整數(shù))分別指的是對(duì)p所
2、指向的地址左移或右移一個(gè)單位地址, 和對(duì)p所指向的地址左移或右移n個(gè)單位地址!單位地址的大小與指針?biāo)赶虻淖兞款愋陀嘘P(guān)!例如p所指向的變量得類型為int型變量,如果進(jìn)行p+運(yùn)算就是將指針指向p所指向的地址向數(shù)值大的方向加4個(gè)字節(jié) ,同理若p指向的是 float型則是向地址大的方向加8個(gè)字節(jié)(3)簡(jiǎn)述指向函數(shù)的指針和返回指針的函數(shù) 答:指向函數(shù)的指針本身是一個(gè)指針 ,因?yàn)楹瘮?shù)通常都有一個(gè)輸入接口指向函數(shù)的指針就是指向這個(gè)函數(shù)。 在使用指針的時(shí)候會(huì)把需要傳遞的參數(shù)通過(guò)指針傳遞給函數(shù) ,從指向函數(shù)的指針定義的方法就可以看出來(lái) 。 Int (*pf)(int,int) attention:!!指針定義
3、的類型一定要和函數(shù)的返回值類型一樣才ok 不然會(huì)報(bào)錯(cuò)哦!-_-#返回指針的函數(shù)就是返回值是指針的函數(shù)和普通的函數(shù)使用方法一樣 ,但是在函數(shù)的定義時(shí)定義的方法如下 Int* fun(int*,int*) 一般返回指針的函數(shù)的參數(shù)就是指針的類型返回指指針的函數(shù)在學(xué)習(xí)函數(shù)的時(shí)候就有學(xué)到,主要的優(yōu)勢(shì)是通過(guò)指針的傳遞在調(diào)用外部函數(shù)時(shí)可以對(duì)main函數(shù)中的數(shù)據(jù)直接進(jìn)行操作,不會(huì)像普通函數(shù)一樣如果不適用static靜態(tài)局部變量進(jìn)行聲明那么在函數(shù)調(diào)用結(jié)束后函數(shù)壓進(jìn)棧里面的數(shù)據(jù) 也就丟失了?。?) 舉例說(shuō)明如何使用指針訪問(wèn)一維數(shù)組答:使用指針訪問(wèn)一維數(shù)組 ,因?yàn)閿?shù)組的特性是數(shù)組在內(nèi)存中所占的空間是和它所定義的類
4、型相關(guān)的。同時(shí)數(shù)組內(nèi)的元素在內(nèi)存空間中的地址是依次排列出來(lái)的,所以使用指針訪問(wèn)數(shù)組,可以定義一個(gè)指針然后將數(shù)組的第一個(gè)元素的地址賦值給指針(也就是array【0】)然后可以利用指針的自運(yùn)通過(guò)指針來(lái)達(dá)到訪問(wèn)呢?cái)?shù)組任意數(shù)據(jù)的目的!例子 :-如下圖 (5) 舉例如何通過(guò)指針訪問(wèn)二維數(shù)組元素答:通過(guò)指針訪問(wèn)二維數(shù)組有兩種方法,第一種方法是使用像訪問(wèn)一維數(shù)組時(shí)的方式定義指針然后將數(shù)組的首地址賦值給指針然后通過(guò)指針的自運(yùn)算利用地址的偏移實(shí)現(xiàn)對(duì)任意數(shù)組元素的訪問(wèn),也可以使用for循環(huán)的嵌套實(shí)現(xiàn)對(duì)數(shù)組的行和列的控制進(jìn)而實(shí)現(xiàn)對(duì)數(shù)組的訪遍歷;第二種方法就是定義一個(gè)數(shù)組指針然后使這個(gè)指針指向這個(gè)數(shù)組,利用數(shù)組指針的
5、運(yùn)算達(dá)到數(shù)組元素的訪問(wèn)。下面是兩種方法在vc6.0 IDE下面的代碼截圖 : 第一種方法:第二種方法:(6) 簡(jiǎn)述字符數(shù)組和字符串指針的異同答:字符數(shù)組和字符串指針在定義,和使用以及內(nèi)存分配方面都有很多的不同;第一 (1)定義的方法不同,字符數(shù)組在定義時(shí)必須要有數(shù)組的長(zhǎng)度的分配所以程序員在使用時(shí)必須要考慮到實(shí)際所要用到的長(zhǎng)度,例如要使用有四個(gè)字母的字符數(shù)組最少要用到5個(gè)長(zhǎng)度。 (ps:因?yàn)樽址竺娑家薪Y(jié)束標(biāo)志字符0)而字符串指針就不存在這個(gè)問(wèn)題,程序員在定義時(shí)賦值可以任意的賦值而不需要考慮到內(nèi)存長(zhǎng)度問(wèn)題。 例:第二 (2)內(nèi)存分配方法不同,在程序運(yùn)行時(shí)字符串指針是分配在常量區(qū)的 ,也就是字
6、符串指針?biāo)赶虻淖址麛?shù)據(jù)在常量區(qū)也就是字符串指針在定以賦值后事無(wú)法在進(jìn)行改變了。但是字符數(shù)組的空間分配實(shí)在棧區(qū)的,所以字符數(shù)組在定義后是可以多次進(jìn)行賦值的。但是每個(gè)數(shù)組在創(chuàng)建時(shí)所生成的以數(shù)組名定義的指針是一個(gè)不可更改值的地址常量(ps:指向數(shù)組的第一個(gè)元素的地址)這一點(diǎn)一定要區(qū)分清楚。第三 (3)后期使用不同,通過(guò)上面的內(nèi)存分配原理我們不難理解在后期的使用中字符數(shù)組是可以多次賦值的,但是字符串指針的值是不能改變的!(7)簡(jiǎn)述指針數(shù)組和數(shù)組指針的各自特點(diǎn)答:指針數(shù)組與數(shù)組指針本身屬性就是兩個(gè)不同的概念,指針數(shù)組本身就是一個(gè)數(shù)組,不同的是數(shù)組內(nèi)部的每個(gè)元素存儲(chǔ)的都是指針的類型。但是數(shù)組指針本身卻是
7、個(gè)指針,只是這個(gè)指針的指向有點(diǎn)特殊,它每次指向的都是二維數(shù)組的行首地址和每行的地址偏移量所以叫他數(shù)組指針。指針數(shù)組的特點(diǎn)是數(shù)組內(nèi)部的每個(gè)元素都是數(shù)組類型 這樣我們就利用了數(shù)組對(duì)數(shù)據(jù)的組織的方便性結(jié)合指針的高效性和方便性,從而對(duì)數(shù)據(jù)的更方便的管理和訪問(wèn)及使用數(shù)組指針的特點(diǎn)是快捷的訪問(wèn)數(shù)組而且通過(guò)數(shù)組指針我們可以直接對(duì)數(shù)組指針進(jìn)行數(shù)組下標(biāo)的訪問(wèn),這在指向數(shù)組的指針中是難以實(shí)現(xiàn)的例 Int array23;Int *p;Int *p2;p=&array0;Printf(“%d”,p12); /此時(shí)是違法的!p2=array;Printf(“%d”,p12); /此時(shí)是可以使用的!(8) 如何使用指針
8、訪問(wèn)結(jié)構(gòu)變量答:使用指針訪問(wèn)結(jié)構(gòu)體變量,首先定義一個(gè)指向結(jié)構(gòu)體變量的指針,定義指向結(jié)構(gòu)體變量的指針的方法如下Struct 結(jié)構(gòu)體名,*p指針變量名;定義好指向結(jié)構(gòu)體的指針后還要對(duì)他進(jìn)行賦值 例:Struct student stu,*p;P=&stu;賦值后就可以通過(guò)指針訪問(wèn)結(jié)構(gòu)體中的成員變量了!訪問(wèn)方式有兩種,使用.運(yùn)算符訪問(wèn)成員變量 例 (*p).成員變量名;(2) 使用-運(yùn)算符訪問(wèn)成員變量 例 P-成員變量名;(9) 舉例說(shuō)明如何使用viod指針進(jìn)行強(qiáng)制類型轉(zhuǎn)換答:viod指針用來(lái)指向一個(gè)抽象的數(shù)據(jù),在將它值賦值給另一個(gè)指針變量時(shí)要進(jìn)行強(qiáng)制的類型轉(zhuǎn)換使之適合與被賦值的變量的數(shù)據(jù)類型。 例
9、 Char *p1;Void *p2;P1=(char *)p2; 或P2=(void *)p1;第二題編寫(xiě)函數(shù)fun(int *p,int* lin,int* col),功能是查找二維數(shù)組中的最大值,并返回最大值所在的行列號(hào)答:源代碼和運(yùn)行截圖如下 #include #include int fun(int* p,int* lin,int* col);int main()int array23=1,9,6,4,5,2;int lin=0,col=0;int max;max=fun(&array00,&lin,&col);printf(數(shù)組中最大的數(shù)據(jù)是%d n它在第%d行 n它在第%d列n,
10、max,lin,col);system(pause);return 0;int fun(int* p,int* lin,int* col)int i,j;int max;max=*p;for(i=0;i2;i+)for(j=0;j3;j+)if(max*(p+(3*i+j)max=*(p+(3*i+j);*lin=i+1;*col=j+1;return max;編寫(xiě)函數(shù)fun(char *s),功能是統(tǒng)計(jì)字符串中字符的個(gè)數(shù)答:源代碼和運(yùn)行截圖如下 #include #include int fun (char *s);int main()char *s=fjashgfjgfjlsagfjkgf
11、juisha; /此處亂敲!int result=0;result=fun(s);printf(字符串s中共有字符%d個(gè)n,result);system(pause);return 0;int fun (char *s)int result=0;while(*s)result+;s+;return result;編寫(xiě)函數(shù)fun(char *s),功能是把字符串中的內(nèi)容逆置答:源代碼和運(yùn)行截圖如下 #include #include void fun(char *s);int main()char array10;printf(請(qǐng)輸入十個(gè)字母數(shù)據(jù)我們將試著逆置他們n);gets(array);p
12、rintf(您輸入的數(shù)據(jù)為%sn,&array);fun(&array0);printf(逆置后的數(shù)據(jù)為%sn,&array);system(pause);return 0;void fun(char *s)int i;char temp;for(i=0;i5;i+)temp=*(s+9-i);*(s+9-i)=*(s+i);*(s+i)=temp;編寫(xiě)函數(shù)fun(char *s1,char *s2),功能是把字符串s2中的內(nèi)容復(fù)制到字符串s1中答:源代碼和運(yùn)行截圖如下 #include #include void fun(char *s1,char* s2);int main()printf
13、(請(qǐng)輸入兩段字符串我們將會(huì)把字符串2的數(shù)據(jù)復(fù)制到字符串1中n);printf(請(qǐng)輸入第一段字符串請(qǐng)輸入十個(gè)字符n);char array11;char array211;gets(array);printf(您輸入的第一段字符串為:%sn,array);printf(請(qǐng)輸入第二段字符串請(qǐng)輸入十個(gè)字符n);gets(array2);printf(您輸入的第一段字符串為:%sn,array2);fun(&array0,&array20);printf(復(fù)制后的數(shù)據(jù)為n);printf(第一個(gè)字符串為%sn,array);printf(第二個(gè)字符串為%sn,array2);system(pause);return 0;void fun(char *s1,char* s2)int i=0;for(i;i10;i+)*(s1+i)=*(s2+i);編寫(xiě)函數(shù)fun(char *s1,char *s2),功能是把字符串s2的內(nèi)容鏈接到字符串s1的后面答:源代碼和運(yùn)行截圖如下 #include #include void fun(char* s1,char* s2);int main()printf(請(qǐng)您輸入兩段字符串 我們將首尾鏈接他們n);char array21;char array211;printf(請(qǐng)您輸入十個(gè)字母或
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 仲夏夜之夢(mèng)的讀后感范文
- 中學(xué)秋季田徑運(yùn)動(dòng)會(huì)開(kāi)幕詞
- 探究新課改下高中數(shù)學(xué)有效教學(xué)的幾點(diǎn)策略
- 影像科危急值報(bào)告制度
- 影響心理挫折承受能力的因素
- 聯(lián)考協(xié)作體八年級(jí)上學(xué)期語(yǔ)文12月月考試卷
- 2024年11月6日突發(fā)交通事故演練總結(jié)
- 腕表回收合同(2篇)
- 比的意義教學(xué)反思20篇
- 南京工業(yè)大學(xué)浦江學(xué)院《食品工程原理》2023-2024學(xué)年第一學(xué)期期末試卷
- 人力資源管理師(三級(jí))課件合集
- 2024貴州省榕江縣事業(yè)單位招聘100人歷年高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
- 綿陽(yáng)市高中2022級(jí)(2025屆)高三第一次診斷性考試(一診)物理試卷
- 標(biāo)志設(shè)計(jì) 課件 2024-2025學(xué)年人教版(2024)初中美術(shù)七年級(jí)上冊(cè)
- 校園班級(jí)大隊(duì)委競(jìng)選內(nèi)容課件演示
- 2024版合同范本之711便利店加盟合同
- 醫(yī)療機(jī)構(gòu)工作人員廉潔從業(yè)九項(xiàng)準(zhǔn)則
- 1《觀潮》(課件)語(yǔ)文四年級(jí)上冊(cè)統(tǒng)編版
- 部編版小學(xué)二年級(jí)道德與法治上冊(cè) 第四單元 我們生活的地方 學(xué)歷案設(shè)計(jì)
- 2024年秋國(guó)開(kāi)形策大作業(yè)【附3份答案】:中華民族現(xiàn)代文明有哪些鮮明特質(zhì)?建設(shè)中華民族現(xiàn)代文明的路徑是什么
- 教育新篇章:數(shù)字化轉(zhuǎn)型
評(píng)論
0/150
提交評(píng)論