亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? tc11.dat

?? 指令字典2005里面可以方便的查找一些函數(shù)
?? DAT
?? 第 1 頁 / 共 2 頁
字號(hào):
指向數(shù)組的指針變量的定義,與指向普通變量的指針變量的定義方法一樣.

例如,int  array[10], *pointer=array(或&array[0]);
或者:
        int  array[10], *pointer;

  pointer=array;

注意:數(shù)組名代表數(shù)組在內(nèi)存中的起始地址(與第1個(gè)元素的地址相同),所以可以用數(shù)組名給指針變量賦值.

3.數(shù)組元素的引用

數(shù)組元素的引用,既可用下標(biāo)法,也可用指針法.使用下標(biāo)法,直觀;而使用指針法,能使目標(biāo)程序占用內(nèi)存少、運(yùn)行速度快.

9.3.2  通過指針引用數(shù)組元素

如果有“int array[10],*pointer=array;” ,則:

(1)pointer+i和array+i都是數(shù)組元素array[i]的地址,如圖9-6所示. 

(2)*(pointer+i)和*(array+i)就是數(shù)組元素array[i].

(3)指向數(shù)組的指針變量,也可將其看作是數(shù)組名,因而可按下標(biāo)法來使用.例如,pointer[i]等價(jià)于*(pointer+i).

注意:pointer+1指向數(shù)組的下一個(gè)元素,而不是簡單地使指針變量pointer的值+1.其實(shí)際變化為pointer+1*size(size為一個(gè)元素占用的字節(jié)數(shù)).

例如,假設(shè)指針變量pointer的當(dāng)前值為3000,則pointer+1為3000+1*2=3002,而不是3001.

[案例9.5] 使用指向數(shù)組的指針變量來引用數(shù)組元素.

/*案例代碼文件名:AL9_5.C*/

/*程序功能:使用指向數(shù)組的指針變量來引用數(shù)組元素*/

main()

    { int array[10], *pointer=array, i; 

       printf(“Input 10 numbers: ”);

       for(i=0; i<10; i++)

           scanf(“%d”, pointer+i);  /*使用指針變量來輸入數(shù)組元素的值*/

       printf(“array[10]: ”);

       for(i=0; i<10; i++)

          printf(“%d  ”, *(pointer+i));    /*使用指向數(shù)組的指針變量輸出數(shù)組*/

       printf(“\n”);

    }                                                                 [程序演示]

程序運(yùn)行情況:

Input 10 numbers: 0 1 2 3 4 5 6 7 8 9←┘

array[10]:  0  1  2  3  4  5  6  7  8  9

程序說明:

程序中第3行和第6行的2個(gè)for語句,等價(jià)于下面的程序段:

for(i=0; i<10; i++,pointer++)

    scanf(“%d”,pointer);

printf(“array[10]: ”);

pointer=array;                /*使pointer重新指向數(shù)組的第一個(gè)元素*/

for(i=0; i<10; i++,pointer++)

    printf(“%d”,*pointer);

思考題:

(1)如果去掉“pointer=array;”行,程序運(yùn)行結(jié)果會(huì)如何?請(qǐng)上機(jī)驗(yàn)證.

(2)在本案例中,也可以不使用i來作循環(huán)控制變量,程序怎么修改?提示:指針可以參與關(guān)系運(yùn)算.

        說明:

      (1)指針變量的值是可以改變的,所以必須注意其當(dāng)前值,否則容易出錯(cuò).

      (2)指向數(shù)組的指針變量,可以指向數(shù)組以后的內(nèi)存單元,雖然沒有實(shí)際意義.

      (3)對(duì)指向數(shù)組的指針變量(px和py)進(jìn)行算術(shù)運(yùn)算和關(guān)系運(yùn)算的含義

         1)可以進(jìn)行的算術(shù)運(yùn)算,只有以下幾種:

         px±n,  px++/++px,  px--/--px,  px-py

         ·px±n:將指針從當(dāng)前位置向前(+n)或回退(-n)n個(gè)數(shù)據(jù)單位,而不是n個(gè)字節(jié).顯然,px++/++px和px--/--px是px±n的特例(n=1).

         ·px-py:兩指針之間的數(shù)據(jù)個(gè)數(shù),而不是指針的地址之差.

2)關(guān)系運(yùn)算

 表示兩個(gè)指針?biāo)傅刂分g、位置的前后關(guān)系:前者為小,后者為大.

例如,如果指針px所指地址在指針py所指地址之前,則px〈py的值為1.

 9.3.3  再論數(shù)組作函數(shù)參數(shù)

數(shù)組名作形參時(shí),接收實(shí)參數(shù)組的起始地址;作實(shí)參時(shí),將數(shù)組的起始地址傳遞給形參數(shù)組.

 引入指向數(shù)組的指針變量后,數(shù)組及指向數(shù)組的指針變量作函數(shù)參數(shù)時(shí),可有4種等價(jià)形式(本質(zhì)上是一種,即指針數(shù)據(jù)作函數(shù)參數(shù)):

(1)形參、實(shí)參都用數(shù)組名

(2)形參、實(shí)參都用指針變量

(3)形參用指針變量、實(shí)參用數(shù)組名

(4)形參用數(shù)組名、實(shí)參用指針變量

9.3.4  2維數(shù)組的指針及其指針變量

 1.  2維數(shù)組的指針
        假設(shè)有如下數(shù)組定義語句: int  array[3][4];
       (1)從2維數(shù)組角度看,數(shù)組名array代表數(shù)組的起始地址, 是一個(gè)以行為單位進(jìn)行控制的行指針:
        ·array+i:行指針值,指向2維數(shù)組的第i行.
        ·*(array+i):(列)指針值,指向第i行第0列(控制由行轉(zhuǎn)為列,但仍為指針).
         ·*(*(array+i)):數(shù)組元素array[i][0]的值.
        用array作指針訪問數(shù)組元素array[i][j]的格式:

                  *(*(array+i)+j)

注意:行指針是一個(gè)2級(jí)指針,如圖9-7所示.

(2)從1維數(shù)組角度看,數(shù)組名array和第1維下標(biāo)的每一個(gè)值, 共同構(gòu)成一組新的1維數(shù)組名array[0]、array[1]、array[2],它們均由4個(gè)元素組成.

C語言規(guī)定:數(shù)組名代表數(shù)組的地址,所以array[i]是第i行1維數(shù)組的地址, 它指向該行的第0列元素,是一個(gè)以數(shù)組元素為單位進(jìn)行控制的列指針:

·array[i]+j:(列)指針值,指向數(shù)組元素array[i][j].

·*(array[i]+j):數(shù)組元素array[i][j]的值.

如果有“int array[3][4],*p=array[0];”,則p+1指向下一個(gè)元素,如圖9-8所示.

用p作指針訪問數(shù)組元素array[i][j]的格式:

          *(p+(i*每行列數(shù)+j) )

2.行指針變量──指向由n個(gè)元素組成的一維數(shù)組的指針變量

(1)定義格式

       數(shù)據(jù)類型   (*指針變量)[n];

注意:“*指針變量”外的括號(hào)不能缺,否則成了指針數(shù)組--數(shù)組的每個(gè)元素都是一個(gè)指針──指針數(shù)組(本章第6節(jié)介紹).

(2)賦值

        行指針變量 = 2維數(shù)組名 | 行指針變量;

[案例9.6] 使用行指針和列指針兩種方式輸出2維數(shù)組的任一元素.

(1) 使用行指針

/*案例代碼文件名:AL9_6_1.C*/

/*程序功能:使用行指針輸出2維數(shù)組的任一元素*/

main()

   {  int array[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

       int (*pointer)[4], row, col;                

        pointer=array; 

        printf(“Input row = ”); scanf(“%d”, &row);

        printf(“Input col = ”); scanf(“%d”, &col);

        printf(“array[%1d][%1d] = %d\n”, row, col, *(*(pointer+row)+col));

     }                                                              [程序演示]

程序運(yùn)行情況:

    Input row = 1←┘

    Input col = 2←┘

    array[1][2] = 7

思考題:本題也可以直接使用數(shù)組名array作指針,應(yīng)如何修改?

(2)使用列指針

/*案例代碼文件名:AL9_6_2.C*/

/*程序功能:使用列指針輸出2維數(shù)組的任一元素*/

main()

   { int array[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

      int *pointer, row, col;                  /*定義一個(gè)(列)指針變量pointer*/

      pointer=array[0];               /*給(列)指針變量pointer賦值*/

      printf(“Input row = ”); scanf(“%d”,&row);

      printf(“Input col = ”); scanf(“%d”,&col);

      printf(“array[%1d][%1d] = %d\n”, row, col, *(pointer+(row*4+col)));

   }                                                         [程序演示]

    3. 2維數(shù)組指針作函數(shù)參數(shù)

    2維數(shù)組的指針作函數(shù)實(shí)參時(shí),有列指針和行指針兩種形式.相應(yīng)的,用來接受實(shí)參數(shù)組指針的形參,必須使用相應(yīng)形式的指針變量,如下所示:

        實(shí)參:       列指針              行指針

                               ↓                       ↓

        形參:   (列)指針變量      行指針變量

    9.3.5   動(dòng)態(tài)數(shù)組的實(shí)現(xiàn)

   在程序運(yùn)行過程中,數(shù)組的大小是不能改變的.這種數(shù)組稱為靜態(tài)數(shù)組.靜態(tài)數(shù)組的缺點(diǎn)是:對(duì)于事先無法準(zhǔn)確估計(jì)數(shù)據(jù)量的情況,無法做到既滿足處理需要,又不浪費(fèi)內(nèi)存空間.

    所謂動(dòng)態(tài)數(shù)組是指,在程序運(yùn)行過程中,根據(jù)實(shí)際需要指定數(shù)組的大小.

   在C語言中,可利用內(nèi)存的申請(qǐng)和釋放庫函數(shù),以及指向數(shù)組的指針變量可當(dāng)數(shù)組名使用的特點(diǎn),來實(shí)現(xiàn)動(dòng)態(tài)數(shù)組.    

        動(dòng)態(tài)數(shù)組的本質(zhì)是:一個(gè)指向數(shù)組的指針變量.

[案例9.7] 動(dòng)態(tài)數(shù)組的實(shí)現(xiàn).

/*案例代碼文件名:AL9_7.C*/

/*程序功能:實(shí)現(xiàn)動(dòng)態(tài)數(shù)組*/

#include  “alloc.h”

#include  “stdlib.h”

main()

     { int  *array=NULL, num, i;

        printf(“Input the  number  of   element: ”); scanf(“%d”, &num);

        /*申請(qǐng)動(dòng)態(tài)數(shù)組使用的內(nèi)存塊*/

        array=(int  *)malloc( sizeof(int) * num );     

        if ( array==NULL )        /*內(nèi)存申請(qǐng)失敗:提示,退出*/

              { printf(“out  of  memory, press  any  key  to  quit……”);

                 exit(0);          /*exit():終止程序運(yùn)行,返回操作系統(tǒng)*/

              }

  /*提示輸入num個(gè)數(shù)據(jù)*/

  printf(“Input  %d  elements: ”, num);

  for (i=0; i<num; i++) scanf(“%d”, &array[i]);

  /*輸出剛輸入的num個(gè)數(shù)據(jù)*/

  printf(“%d  elements  are: ”, num);

  for (i=0; i<num; i++) printf(“%d,”, array[i]);

  printf(“\b ”);           /*刪除最后一個(gè)數(shù)據(jù)后的分隔符“,”*/

  free(array);              /*釋放由malloc()函數(shù)申請(qǐng)的內(nèi)存塊*/

}                       [程序演示]

程序運(yùn)行情況:

    Input the  number  of   element: 3←┘

    Input  3  elements: 1  2  3←┘

    3  elements are: 1,2,3 

程序說明:

(1) array=(int  *)malloc( sizeof(int) * num );語句──malloc()函數(shù)和sizeof運(yùn)算符

1)庫函數(shù)malloc()

·用法:void *malloc(unsigned size)

·功能:在內(nèi)存的動(dòng)態(tài)存儲(chǔ)區(qū)分配1個(gè)長度為size的連續(xù)空間.

·返回值:申請(qǐng)成功,則返回新分配內(nèi)存塊的起始地址;否則,返回NULL.

·函數(shù)原型:alloc.h,stdlib.h.

malloc()函數(shù)的返回值是一個(gè)無類型指針,其特點(diǎn)是可以指向任何類型的數(shù)據(jù).但在實(shí)際使用malloc()函數(shù)時(shí),必須將其返回值強(qiáng)制轉(zhuǎn)換成被賦值指針變量的數(shù)據(jù)類型,以免出錯(cuò).

2)運(yùn)算符sizeof

·格式:sizeof(變量名/類型名)

·功能:求變量/類型占用的內(nèi)存字節(jié)數(shù)(正整數(shù)).例如,在IBM-PC機(jī)上,sizeof(int)=2.

思考題:在該語句中,使用sizeof(int)求出1個(gè)int型數(shù)據(jù)占用的內(nèi)存字節(jié)數(shù),而不是使用常量“2”,為什么?

(2) scanf(“%d”, &array[i]);語句和printf(“%d,”, array[i]);語句

將指向數(shù)組的指針變量當(dāng)作數(shù)組名使用,所以就必須按引用數(shù)組元素的語法規(guī)則來使用.

(3) printf(“\b ”);語句

 “\b” 在該語句中的作用是,使光標(biāo)定位到最后一個(gè)數(shù)據(jù)后的分隔符“,”上,然后再輸出一個(gè)空格,以達(dá)到刪除之目的.

(4) free(array);語句──庫函數(shù)free()

·用法:void  free(void  *ptr)

·功能:釋放由ptr指向的內(nèi)存塊(ptr是調(diào)用malloc() 函數(shù)的返回值).

·返回值:無.

·函數(shù)原型:stdlib.h,alloc.h.

原則上,使用malloc()函數(shù)申請(qǐng)的內(nèi)存塊,操作結(jié)束后,應(yīng)及時(shí)使用free()函數(shù)予以釋放.尤其是循環(huán)使用malloc()函數(shù)時(shí),如果不及時(shí)釋放不再使用的內(nèi)存塊,很可能很快就耗盡系統(tǒng)的內(nèi)存資源,從而導(dǎo)致程序無法繼續(xù)運(yùn)行.


?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日韩亚洲欧美综合| proumb性欧美在线观看| 精油按摩中文字幕久久| 国产综合色在线视频区| 国产福利精品一区| 色婷婷综合久久久中文一区二区| 色婷婷久久久久swag精品| 欧美色手机在线观看| 欧美日韩国产免费| 亚洲精品一区二区三区精华液| 久久久99久久精品欧美| 国产精品久久久久久久久久久免费看| 亚洲乱码一区二区三区在线观看| 亚洲一区二区五区| 奇米精品一区二区三区在线观看| 国产精品一区二区91| 成+人+亚洲+综合天堂| 欧美性淫爽ww久久久久无| 欧美一卡在线观看| 久久综合给合久久狠狠狠97色69| 久久久久久久久久久久久夜| 国产精品成人免费精品自在线观看| 亚洲精品国产精华液| 奇米一区二区三区| 成人精品国产免费网站| 欧美日韩一区三区四区| 亚洲精品在线电影| 亚洲男同性视频| 久久66热re国产| 盗摄精品av一区二区三区| 欧美亚洲丝袜传媒另类| 欧美一区二区三区不卡| 国产嫩草影院久久久久| 日韩中文字幕av电影| 国产.欧美.日韩| 欧美午夜精品一区二区三区| 亚洲精品一区二区三区福利| 亚洲激情欧美激情| 蜜臀精品一区二区三区在线观看| 成人性生交大片免费看在线播放| 欧美日韩国产高清一区二区| 精品91自产拍在线观看一区| 亚洲一区中文日韩| 国产成人在线视频免费播放| 欧美老女人在线| 日本一二三四高清不卡| 天天综合日日夜夜精品| kk眼镜猥琐国模调教系列一区二区| 日韩视频一区二区三区在线播放| 1024成人网色www| 激情综合网激情| 欧美少妇bbb| 亚洲国产精品国自产拍av| 午夜电影网一区| 色综合视频一区二区三区高清| 精品国产3级a| 婷婷开心久久网| 99精品在线观看视频| 久久久精品免费观看| 日本少妇一区二区| 色乱码一区二区三区88| 国产丝袜欧美中文另类| 久久机这里只有精品| 91福利视频在线| 国产亚洲欧美一级| 蜜桃在线一区二区三区| 欧美亚一区二区| 亚洲视频一区二区在线观看| 精品在线你懂的| 在线观看91av| 亚洲成人精品在线观看| 一本大道久久a久久精品综合| 精品福利一二区| 奇米影视一区二区三区| 这里只有精品视频在线观看| 一卡二卡欧美日韩| 一本一道综合狠狠老| 国产精品免费人成网站| 国产成人精品免费| 欧美精品一区二区三区蜜桃视频| 亚洲成人一区在线| 91久久精品国产91性色tv | 亚洲免费大片在线观看| 成人性色生活片| 国产精品美女久久久久久久网站| 捆绑紧缚一区二区三区视频| 欧美一区二区播放| 日本美女视频一区二区| 欧美精品久久久久久久多人混战 | 丁香另类激情小说| 国产亚洲综合性久久久影院| 国产老肥熟一区二区三区| 欧美一区二区播放| 蜜桃视频在线一区| 精品日韩一区二区三区免费视频| 秋霞影院一区二区| 亚洲精品在线观看视频| 国产成人精品一区二区三区四区| 久久久91精品国产一区二区精品 | 国产精品丝袜一区| 懂色av噜噜一区二区三区av| 日韩欧美中文一区二区| 国产一区二区在线免费观看| 国产色婷婷亚洲99精品小说| 不卡电影一区二区三区| 综合中文字幕亚洲| 欧美亚洲国产一区在线观看网站| 天天色天天操综合| 日韩欧美一卡二卡| 国产在线不卡一区| 久久色中文字幕| 成人午夜在线免费| 亚洲免费成人av| 777奇米四色成人影色区| 日本欧洲一区二区| 久久久亚洲精品一区二区三区| 午夜精彩视频在线观看不卡| 亚洲一区二区三区爽爽爽爽爽| 26uuu精品一区二区在线观看| 久久午夜国产精品| 欧美日韩国产高清一区二区| 国产成人精品www牛牛影视| 国产美女一区二区| 久久精品99国产精品日本| 91精品一区二区三区在线观看| 亚洲欧洲三级电影| 日本电影亚洲天堂一区| 午夜电影久久久| 久久久久久免费| 99re66热这里只有精品3直播 | 精品电影一区二区三区| 国内精品久久久久影院色| 国产女主播一区| 欧美午夜精品免费| 黑人巨大精品欧美黑白配亚洲| 自拍偷在线精品自拍偷无码专区| 欧美日韩综合色| 精品国产乱子伦一区| 成人精品高清在线| 久久国产人妖系列| 亚洲成人福利片| 欧美激情一区在线观看| 欧美一区二区三区免费大片| 色婷婷亚洲精品| 粉嫩av一区二区三区| 日韩成人av影视| 亚洲综合在线电影| 国产精品入口麻豆九色| 欧美精品一区二区三区很污很色的| 欧洲精品在线观看| 成人伦理片在线| 国产一区激情在线| 日本不卡视频一二三区| 亚洲精品第一国产综合野| 欧美国产综合色视频| 久久亚洲捆绑美女| 日韩一区二区三区视频在线观看| 欧美影院一区二区| 91亚洲男人天堂| 国产成人av福利| 国产乱码精品一区二区三区av| 日韩在线卡一卡二| 一区二区三区鲁丝不卡| 国产精品高潮呻吟| 久久久久久久久一| 在线播放日韩导航| 欧美亚洲高清一区| 在线免费观看不卡av| 不卡欧美aaaaa| 成人国产免费视频| 国产传媒日韩欧美成人| 韩国精品久久久| 紧缚奴在线一区二区三区| 日韩1区2区日韩1区2区| 午夜精品久久久久| 亚洲午夜精品久久久久久久久| 亚洲精品视频在线观看网站| 亚洲欧美在线观看| 日韩伦理免费电影| 亚洲天堂精品视频| 一区二区三区日韩| 亚洲黄色免费网站| 亚洲欧美日韩久久| 一区二区三区欧美日| 亚洲精品乱码久久久久久黑人 | 色狠狠色噜噜噜综合网| 成人国产精品免费观看动漫| 日韩亚洲国产中文字幕欧美| 欧美视频在线观看一区二区| 91九色最新地址| 欧美日韩国产一二三| 9191国产精品| 88在线观看91蜜桃国自产| 欧美一区二区日韩一区二区| 日韩免费电影网站| 久久亚洲春色中文字幕久久久| 久久久久综合网| 亚洲国产精品传媒在线观看| 国产精品少妇自拍| 亚洲精品午夜久久久|