999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

C語言中的指針運算

2014-04-16 02:35:42龐新法PANGXinfa
價值工程 2014年11期

龐新法 PANG Xin-fa

(陜西省委黨校科技教研部,西安 710061)

(Shaanxi Provincial Party School of the CPC,Xi'an 710061,China)

C語言中的指針運算

龐新法 PANG Xin-fa

(陜西省委黨??萍冀萄胁?,西安 710061)

(Shaanxi Provincial Party School of the CPC,Xi'an 710061,China)

指針是C語言的精華、重點、難點,也是C系列語言的基礎。本文介紹了C語言中的指針常量和指針變量的運算規則,以及對數組的訪問。

指針;地址;數組;運算

1 緒論

C語言的精華是指針,程序設計的關鍵也是指針,使用指針的難點是指針的運算。用指針訪問數組元素,相對比較抽象,故本文用簡單的自然語言予以淺析。

2 指針變量的概念

2.1 內存地址:內存中存儲單元的編號 內存中,有眾多的存儲單元(單位:字節)。為了區分不同單元,必須為每一個單元編號,這個編號就是存儲單元的“地址”,就像電話很多,為了區分每一部電話,必須為其編號,該編號就是電話號碼。每個單元有且僅有一個惟一的地址。單元中存放數據,注意區分單元的地址與單元中的內容(數據)。

2.2 變量地址:該變量在內存中的起始地址 變量名是單元的外部名字(用戶命名),單元號是單元的內部名字(系統命名)如int x假設整型變量是2個字節,系統分配的存儲單元為100和101,則首地址100就是變量x在內存中的地址。

直接訪問——直接利用變量的地址進行存取。

如:把“書”送給“張偉”就是直接訪問。

間接訪問——通過另一變量訪問該變量的值。

如:把“書”送給“張偉他哥”就是間接訪問,先間訪“張偉”,知道他哥的地址,再按此地址送“書”。

2.3 指針變量

指針:即地址,存放地址的變量稱為指針變量。

指針變量定義格式:數據類型*指針變量[,*指針變量2……];

取地址運算的格式:&變量

例如

main()

{int x,*p;/*整形的指針的p單元

P=&x;

X=10;

*p+=20;

}程序運行結果是30,30

3 數組的指針和指向數組的指針變量

3.1 數組的指針 數組元素在內存中連續存放,數組名代表數組首地址,是一個地址常量。

3.2 指向數組的指針變量的定義

例如,int a[10],*p=a(或 &a[0]);

或者:int a[10],*p;p=a;

3.3 數組元素的引用

3.3.1 按名存取 有 int a[10],*p=a;定義,則p=a,一個數組,兩個名字p和a,訪問元素時用a[i]或p[i]。

3.3.2 按地址存取 有 int a[10],*p=a;定義,則:p+i和a+i都是數組元素a[i]的地址,訪問元素時用*(p+i)和*(a+i)。按地址存?。?(p+i),*(a+i),按名存取:a[i],p[i]四個是等價關系。

除國際市場對國內市場的利好支撐之外,國內的供求利好依然存在。且隨時間推移,環保力度持續加大,行業開工率低位運行的局面很難改變,供求端利好將成為常態化。

注意:①p+n指向數組的下n個元素,而不是簡單地使指針變量p的值+n。編譯時為p+n*m。m為一個元素占用的字節數。②指針變量:既然是變量,其值隨時在變,必須注意其當前值,否則容易出錯。③指向數組的指針變量,可以指向數組以后的任何內存單元,C語言不做越界檢查,這些單元不是系統分配的單元,強占資源,易導致死機。④int a[10],*p=a;p++對,a++錯,a常量,p 變量。

3.3.3 指向數組的指針變量所支持的運算 地址加減數值等于新地址,除此以外運算沒有意義,由此得出推論,指針支持的運算有:

算術運算:指針變量±整形數據、指針變量-指針變量=整型數值,該數值表示兩指針之間的數據個數,并非地址之差。

關系運算:指針變量 關系運算符 指針變量,表示兩個變量值的大小關系,誰在前誰在后。

4 二維數組的指針及其指針變量

4.1 二維數組的指針 有定義語句:int a[3][4];

①從二維數組角度看,數組名a代表數組的起始地址,是一個以行為單位進行控制的行指針,由一維數組構成的一維數組就是二維數組,a+i是行指針值,指向二維數組的第i行。*(a+i)是列指針值,指向第i行第0列。*(*(a+i)):數組元素a[i][0]的值。用a作指針訪問數組元素a[i][j]的格式:*(*(a+i)+j)。②int a[3][4],b[4];由定義可看出,a[i]相當于數組名 b,故 a[0]、a[1]、a[2]分別表示第 0、1、2 一維數組的名字。③賦值:行指針變量=二維數組名或行指針變量。

4.2 行指針變量定義格式 數據類型(*指針變量)[n];

4.3 二維數組元素的訪問 int a[5][4],(*P)[4]=a;和int b[4],可以看出,b相當于a[5],第i行的一維數組名是a[i],元素地址±數值=元素地址,行地址±數值=行地址,a+i,a[i],*(a+i)其值相等,但a+i是行地址,a[i],*(a+i)是元素地址。

①按名存?。篴[i][j]或p[i][j]

②按地址存?。?*a[i]+j),*(*(a+i)+j),(*p[i]+j),*(*(p+i)+j)

5 動態數組的實現

靜態數組:編譯階段確定數組的大小,運行階段不能改變數組大小。缺點是事先無法準確確定數組的大小,太小不滿足處理需要,太大浪費內存空間。

動態數組:運行階段,根據實際需要動態確定數組的大小。

在C語言中,可利用內存的申請和釋放庫函數,以及指向數組的指針變量可當數組名使用的特點,來實現動態數組。如下程序

5.1 庫函數malloc()

①用法:void*malloc(unsigned size)。②功能:在內存的動態存儲區分配size個字節的連續空間。③返回值:申請成功,則返回新分配內存塊的起始地址;否則,返回NULL。

malloc()函數的返回值是一個無類型指針,但在實際使用malloc()函數時,必須將其返回值強制轉換成被賦值指針變量的數據類型,否則出錯。

5.2 運算符sizeof

①格式:sizeof(變量名/類型名)。②功能:求變量/類型占用的內存字節數。如sizeof(long)=4。

5.3 庫函數free()

①用法:void free(void*ptr)。②功能:釋放由ptr指向的內存塊(ptr是調用malloc()函數的返回值)。③返回值:無。

一般情況下,使用malloc()函數申請的內存塊,操作結束后,應及時使用free()函數予以釋放。特別是在循環使用malloc()函數申請時,如果不及時釋放不再使用的內存塊,很可能很快就耗盡系統的內存資源,從而導致程序無法繼續運行甚至死機。

6 結束語

學習C語言必須掌握指針的概念,以便為以后C系列語言學習打下基礎。

[1]譚浩強.C語言程序設計[M].清華大學出版社,2004.

[2]丁愛萍.C語言程序設計實例教程[M].西安電子科技大學出版社,2006.

[3]林小茶.C語言程序設計[M].中國鐵道出版社,2005.

The Pointer Arithmetic in C Language

The pointer is the essence,focus and difficult of C language which is also the basis of C language Series.This article describes the arithmetic rules of pointer constants and variables in C language,as well as the access to the address.

pointer;address;array;operation

龐新法(1962-),男,陜西禮泉人,副教授,研究方向為計算機教學。

TP312

A

1006-4311(2014)11-0214-02

主站蜘蛛池模板: 特级做a爰片毛片免费69| jizz在线观看| 国产情精品嫩草影院88av| 色综合激情网| 国产真实二区一区在线亚洲| 精品人妻无码区在线视频| 欧美亚洲网| 精品无码一区二区三区电影| 高清久久精品亚洲日韩Av| 日韩av在线直播| 在线观看欧美国产| 日本一区中文字幕最新在线| 精品欧美视频| 久久99国产综合精品女同| 亚洲中文字幕精品| 麻豆国产原创视频在线播放| 亚洲欧美日韩成人高清在线一区| 国产va欧美va在线观看| 波多野结衣无码中文字幕在线观看一区二区| av在线人妻熟妇| 草逼视频国产| 亚洲日韩精品无码专区97| 伊人国产无码高清视频| 国产白浆一区二区三区视频在线| 美女裸体18禁网站| 久久久久国产一区二区| 欧美在线综合视频| 免费一级成人毛片| 色噜噜狠狠色综合网图区| 欧美成人综合视频| 亚洲av无码久久无遮挡| 亚洲国产91人成在线| 操国产美女| 91久久夜色精品国产网站| 亚洲国产综合自在线另类| 亚洲天堂网在线播放| 久草性视频| 亚洲免费黄色网| 国内自拍久第一页| 亚洲精品第一页不卡| 五月婷婷亚洲综合| 亚洲成人福利网站| 青草精品视频| 午夜性刺激在线观看免费| 国产日韩精品欧美一区灰| 97国产一区二区精品久久呦| 日本www色视频| 欧美日韩中文国产va另类| AV熟女乱| 97在线视频免费观看| AV网站中文| 久久精品aⅴ无码中文字幕 | 国产综合另类小说色区色噜噜| 国产手机在线ΑⅤ片无码观看| 亚洲午夜片| 精品三级在线| 欧美亚洲一二三区| 亚洲色图另类| 亚洲人成网18禁| 国产久草视频| 亚洲六月丁香六月婷婷蜜芽| 人妻91无码色偷偷色噜噜噜| 国产免费看久久久| 香蕉久人久人青草青草| 国产一二三区视频| 亚洲福利片无码最新在线播放| 成人久久18免费网站| 亚洲第一精品福利| 日本免费a视频| 精品国产三级在线观看| 国产福利2021最新在线观看| 欧美一区二区三区欧美日韩亚洲| 国产在线98福利播放视频免费| 久久天天躁狠狠躁夜夜2020一| 亚洲一级色| 亚洲中文字幕久久无码精品A| 一级福利视频| 欧美三级不卡在线观看视频| 亚洲一欧洲中文字幕在线| 真实国产精品vr专区| 国产三级精品三级在线观看| 狠狠色成人综合首页|