奶头挺立呻吟高潮av全片,成人试看120秒体验区,性欧美极品v,A片高潮抽搐揉捏奶头视频

C語(yǔ)言

C語(yǔ)言中指針的概念

時(shí)間:2025-04-01 12:37:41 志彬 C語(yǔ)言 我要投稿
  • 相關(guān)推薦

C語(yǔ)言中指針的概念

  在信息工程中,指針是一個(gè)用來(lái)指示一個(gè)內(nèi)存地址的計(jì)算機(jī)語(yǔ)言的變量或中央處理器(CPU)中的寄存器(Register)。下面是小編為大家整理的C語(yǔ)言中指針的概念,歡迎參考~

  指針,是C語(yǔ)言中的一個(gè)重要概念及其特點(diǎn),也是掌握C語(yǔ)言比較困難的部分。指針也就是內(nèi)存地址,指針變量是用來(lái)存放內(nèi)存地址的變量,在同一CPU構(gòu)架下,不同類(lèi)型的指針變量所占用的存儲(chǔ)單元長(zhǎng)度是相同的,而存放數(shù)據(jù)的變量因數(shù)據(jù)的類(lèi)型不同,所占用的存儲(chǔ)空間長(zhǎng)度也不同。有了指針以后,不僅可以對(duì)數(shù)據(jù)本身,也可以對(duì)存儲(chǔ)數(shù)據(jù)的變量地址進(jìn)行操作。

  指針描述了數(shù)據(jù)在內(nèi)存中的位置,標(biāo)示了一個(gè)占據(jù)存儲(chǔ)空間的實(shí)體,在這一段空間起始位置的相對(duì)距離值。在 C/C++語(yǔ)言中,指針一般被認(rèn)為是指針變量,指針變量的內(nèi)容存儲(chǔ)的是其指向的對(duì)象的首地址,指向的對(duì)象可以是變量(指針變量也是變量),數(shù)組,函數(shù)等占據(jù)存儲(chǔ)空間的實(shí)體。

  基本問(wèn)題

  在計(jì)算機(jī)中,所有的數(shù)據(jù)都是存放在存儲(chǔ)器中的,不同的數(shù)據(jù)類(lèi)型占有的內(nèi)存空間的大小各不相同。內(nèi)存是以字節(jié)為單位的連續(xù)編址空間,每一個(gè)字節(jié)單元對(duì)應(yīng)著一個(gè)獨(dú)一的編號(hào),這個(gè)編號(hào)被稱(chēng)為內(nèi)存單元的地址。比如:int 類(lèi)型占 4 個(gè)字節(jié),char 類(lèi)型占 1 個(gè)字節(jié)等。系統(tǒng)在內(nèi)存中,為變量分配存儲(chǔ)空間的首個(gè)字節(jié)單元的地址,稱(chēng)之為該變量的地址。地址用來(lái)標(biāo)識(shí)每一個(gè)存儲(chǔ)單元,方便用戶(hù)對(duì)存儲(chǔ)單元中的數(shù)據(jù)進(jìn)行正確的訪(fǎng)問(wèn)。在高級(jí)語(yǔ)言中地址形象地稱(chēng)為指針。

  地址與指針

  指針相對(duì)于一個(gè)內(nèi)存單元來(lái)說(shuō),指的是單元的地址,該單元的內(nèi)容里面存放的是數(shù)據(jù)。在 C 語(yǔ)言中,允許用指針變量來(lái)存放指針,因此,一個(gè)指針變量的值就是某個(gè)內(nèi)存單元的地址或稱(chēng)為某內(nèi)存單元的指針。

  變量及其定義

  指針變量是存放一個(gè)內(nèi)存地址的變量,不同于其他類(lèi)型變量,它是專(zhuān)門(mén)用來(lái)存放內(nèi)存地址的,也稱(chēng)為地址變量。定義指針變量的一般形式為:類(lèi)型說(shuō)明符*變量名。

  類(lèi)型說(shuō)明符表示指針變量所指向變量的數(shù)據(jù)類(lèi)型;*表示這是一個(gè)指針變量;變量名表示定義的指針變量名,其值是一個(gè)地址,例如:char*p1;表示 p1 是一個(gè)指針變量,它的值是某個(gè)字符變量的地址。

  1.1 指針與指針變量的概念,指針與地址運(yùn)算符

  1.在C語(yǔ)言中,指針是指一個(gè)變量的地址,通過(guò)變量的地址″指向″的位置找到變量的值,這種″指向″變量地址可形象地看作″指針″。用來(lái)存放指針的變量稱(chēng)為指針變量,它是一種特殊的變量,它存放的是地址值。

  2.定義指針變量的一般形式為:

  類(lèi)型名 *指針變量1,*指針變量2,…;

  ″類(lèi)型名″稱(chēng)為″基類(lèi)型″它規(guī)定了后面的指針變量中存放的數(shù)據(jù)類(lèi)型,″*″號(hào)表明后面的″指針變量1″,″指針變量2″等是指針變量,″*″號(hào)在定義時(shí)不能省略,否則就會(huì)變成一般變量的定義了。″指針變量1″,″指針變量2″等稱(chēng)為指針變量名。

  3.一個(gè)指針變量只能指向同一類(lèi)型的變量。

  4.與指針和指針變量有關(guān)的兩個(gè)運(yùn)算符:

  (1)*:指針運(yùn)算符(或稱(chēng)″間接訪(fǎng)問(wèn)″運(yùn)算符)

  (2)&:取地址運(yùn)算符

  通過(guò)*號(hào)可以引用一個(gè)存儲(chǔ)單元,如有如下定義:

  int i=123,*p,k;

  則 p=&I;或k=*p;或k=*&I;都將變量i中的值賦給k。

  *p=10;或*&i=10;都能把整數(shù)10賦給變量i。這里,等號(hào)左邊的表達(dá)式*p和*&i都代表變量i的存儲(chǔ)單元。

  1.2 變量、數(shù)組、字符串、函數(shù)、結(jié)構(gòu)體的指針以及指向它們的指針變量

  1.變量的指針和指向變量的指針變量。

  2.數(shù)組的指針和指向數(shù)組的指針變量。

  所謂數(shù)組的指針是指數(shù)組的起始地址,數(shù)組元素的指針是數(shù)組元素的地址。

  C語(yǔ)言規(guī)定數(shù)組名代表數(shù)組的首地址,也就是第一個(gè)元素的地址。

  3.字符串的指針和指向字符串的指針變量。

  我們可以通過(guò)定義說(shuō)明一個(gè)指針指向一個(gè)字符串。

  C語(yǔ)言將字符串隱含處理成一維字符數(shù)組,但數(shù)組的每個(gè)元素沒(méi)有具體的名字,這一點(diǎn)跟字符數(shù)組不一樣。要引用字符串中的某個(gè)字符,只能通過(guò)指針來(lái)引用:*(s+0),*(s+1),…,*(s+n)。

  4.函數(shù)的指針和指向函數(shù)的指針變量。

  指向函數(shù)的指針變量的一般形式為 :

  數(shù)據(jù)類(lèi)型標(biāo)識(shí)符 (*指針變量名)();

  這里的″數(shù)據(jù)類(lèi)型標(biāo)識(shí)符″是指函數(shù)返回值的類(lèi)型。

  函數(shù)的調(diào)用可以通過(guò)函數(shù)名調(diào)用,也可以通過(guò)函數(shù)指針調(diào)用(即用指向函數(shù)的指針變量調(diào)用)。

  指向函數(shù)的指針變量表示定義了一個(gè)指向函數(shù)的指針變量,它不是固定指向哪一個(gè)函數(shù),而只是定義了這樣的一個(gè)類(lèi)型變量,它專(zhuān)門(mén)用來(lái)存放函數(shù)的入口地址。在程序中把哪一個(gè)函數(shù)的地址賦給它,它就指向哪一個(gè)函數(shù)。在一個(gè)程序中,一個(gè)指針變量可以先后指向不同的函數(shù)。

  在給函數(shù)指針變量賦值時(shí),只需給出函數(shù)名而不必給出參數(shù)。因?yàn)楹瘮?shù)指針賦的值僅是函數(shù)的入口地址,而不涉及到實(shí)參與形參的結(jié)合問(wèn)題。

  對(duì)指向函數(shù)的指針變量,表達(dá)式p+n,p++,p--等都無(wú)意義。

  5.結(jié)構(gòu)體的指針與指向結(jié)構(gòu)體的指針變量

  一個(gè)結(jié)構(gòu)體變量的指針就是該變量所占據(jù)的內(nèi)存段的起始地址。可以設(shè)一個(gè)指針變量,用來(lái)指向一個(gè)結(jié)構(gòu)體變量,此時(shí)該指針變量的值是結(jié)構(gòu)體變量的起始地址。指針變量也可以用來(lái)指向結(jié)構(gòu)體數(shù)組中的元素。

  1.3 用指針做函數(shù)參數(shù)

  函數(shù)的參數(shù)不僅可以是整型、實(shí)型、字符型等數(shù)據(jù),還可以是指針類(lèi)型,它的作用是將一個(gè)變量的地址傳送到另一個(gè)函數(shù)中。

  1.4 返回指針值的指針函數(shù)

  一個(gè)函數(shù)可以返回一個(gè)整型值、字符值、實(shí)型值等,也可以返回指針型數(shù)據(jù) ,即地址這種帶回指針值的函數(shù),一般的定義形式為:

  類(lèi)型標(biāo)識(shí)符 *函數(shù)名(形參表);

  1.5 指針數(shù)組、指向指針的指針

  1.指針數(shù)組指的是一個(gè)數(shù)組,其元素均為指針類(lèi)型數(shù)據(jù),也就是說(shuō),指針數(shù)組中的每一個(gè)元素都是指針變量。指針數(shù)組的定義形式為:

  類(lèi)型標(biāo)識(shí) *數(shù)組名[數(shù)組長(zhǎng)度說(shuō)明]

  指針數(shù)組可以使字符串處理更加方便。

  2.指向指針的指針是指指向指針數(shù)據(jù)的指針變量,一個(gè)指向指針數(shù)據(jù)的指針變量的一般形式為:

  類(lèi)型標(biāo)識(shí) * *p;

  1.6 main函數(shù)的命令參數(shù)

  指針數(shù)組的一個(gè)重要應(yīng)用是作為main函數(shù)的形參,一般來(lái)說(shuō),main函數(shù)后的括號(hào)中是空的,即沒(méi)有參數(shù)。實(shí)際上main可以有參數(shù),如:

  main(argc,argv)

  其中,argc和argv就是main函數(shù)的形參。其他函數(shù)形參的值可以通過(guò)函數(shù)調(diào)用語(yǔ)句的實(shí)參中得到,由于main函數(shù)是由系統(tǒng)調(diào)用的,因而main函數(shù)的形參值不能從程序中得到,但可以在操作系統(tǒng)狀態(tài)下,將實(shí)參和命令一起給出,從而使main函數(shù)的形參得到值。命令行的一般形式為:

  命令名 參數(shù)1 參數(shù)2…參數(shù)n

  命令名和各參數(shù)之間用空格分隔開(kāi)。

  1.7 動(dòng)態(tài)存儲(chǔ)分配

  在C語(yǔ)言中有一種稱(chēng)為“動(dòng)態(tài)存儲(chǔ)分配”的內(nèi)存空間分配方式:程序在執(zhí)行期間需要存儲(chǔ)空間時(shí),通過(guò)“申請(qǐng)”分配指定的內(nèi)存空間;當(dāng)閑置不用時(shí),可隨時(shí)將其釋放,由系統(tǒng)另作它用。本節(jié)介紹C語(yǔ)言中動(dòng)態(tài)分配系統(tǒng)的主要函數(shù):malloc()、calloc()、free()及realloc(),使用這些函數(shù)時(shí),必須在程序開(kāi)頭包含文件stdlib.h。

  1.主內(nèi)存分配函數(shù)—malloc()

  函數(shù)格式:void*malloc(unsigned size);

  函數(shù)功能:從內(nèi)存中分配一大小為size字節(jié)的塊。

  參數(shù)說(shuō)明:size為無(wú)符號(hào)整型,用于指定需要分配的內(nèi)存空間的字節(jié)數(shù)。

  返回值:新分配內(nèi)存的地址,如無(wú)足夠的內(nèi)存可分配,則返回NULL。

  說(shuō)明:當(dāng)size為0時(shí),返回NULL。

  2.主內(nèi)存分配函數(shù)——calloc()

  函數(shù)格式:void*malloc(unsigned n,unsigned size);

  函數(shù)功能:從內(nèi)存中分配n個(gè)同一類(lèi)型數(shù)據(jù)項(xiàng)的連續(xù)存儲(chǔ)空間,每個(gè)數(shù)據(jù)項(xiàng)的大小為size字節(jié)。

  參數(shù)說(shuō)明:n為無(wú)符號(hào)整型,用于指定分配的數(shù)據(jù)項(xiàng)的個(gè)數(shù)size為無(wú)符號(hào)整型,用于指定需要分配的數(shù)據(jù)項(xiàng)所占內(nèi)存空間的字節(jié)數(shù)。

  返回值:新分配內(nèi)存的地址,如無(wú)足夠的內(nèi)存可分配,則返回NULL。

  3.重新分配內(nèi)存空間函數(shù)——realloc()

  函數(shù)格式:void*realloc(void *block,unsigned size);

  函數(shù)功能:將block所指內(nèi)存區(qū)的大小改為size字節(jié)的塊。

  參數(shù)說(shuō)明:block為void類(lèi)型的指針,指向內(nèi)存中某塊,size為無(wú)符號(hào)整型,用于指定需要分配的內(nèi)存空間的字節(jié)數(shù)。

  返回值:新分配內(nèi)存的地址,如無(wú)足夠的內(nèi)存可分配,則返回NULL。

  4.釋放內(nèi)存函數(shù)—free()

  函數(shù)格式:void free(void*block);

  函數(shù)功能:將calloc()、malloc()及realloc()函數(shù)所分配的內(nèi)存空間釋放為自由空間。

  參數(shù)說(shuō)明:block為void類(lèi)型的指針,指向要釋放的內(nèi)存空間。

  返回值:無(wú)。

【C語(yǔ)言中指針的概念】相關(guān)文章:

C語(yǔ)言指針的概念02-25

C語(yǔ)言指針數(shù)組的概念07-19

c語(yǔ)言指針的基本概念04-07

C語(yǔ)言的指針12-21

C語(yǔ)言中各種類(lèi)型的指針的概念02-14

c語(yǔ)言指針中的二級(jí)指針示例詳解03-02

C語(yǔ)言結(jié)構(gòu)體中的函數(shù)指針06-14

在Swift中怎么使用C語(yǔ)言的指針08-07

C語(yǔ)言指針教學(xué)02-10

主站蜘蛛池模板: 左权县| 淅川县| 龙胜| 炉霍县| 循化| 加查县| 孝感市| 万州区| 沁源县| 资溪县| 随州市| 青川县| 申扎县| 陵水| 连云港市| 随州市| 凌源市| 永和县| 襄垣县| 伊宁县| 绿春县| 肇庆市| 邵阳县| 商水县| 壶关县| 鸡西市| 新化县| 万州区| 益阳市| 星子县| 连山| 盐山县| 淄博市| 温泉县| 郧西县| 山丹县| 遂川县| 盐源县| 香河县| 界首市| 水富县|