天堂国产午夜亚洲专区-少妇人妻综合久久蜜臀-国产成人户外露出视频在线-国产91传媒一区二区三区

征服c指針_紅黑聯(lián)盟讀書(shū)頻道

發(fā)布時(shí)間:2016-10-28 12:38

  本文關(guān)鍵詞:深入理解C指針,由筆耕文化傳播整理發(fā)布。


> c語(yǔ)言 > 深入理解C指針 1. 理解size_t 2014-02-19 11:37:03         我要投稿   

本文所屬圖書(shū) > 深入理解C指針

指針是C 語(yǔ)言的一項(xiàng)核心特性,對(duì)于指針的掌握程度是區(qū)分C 語(yǔ)言新手與老手的重要標(biāo)志。本書(shū)專(zhuān)門(mén)研究指針,旨在提供比其他圖書(shū)更全面和深入的C 指針和內(nèi)存管理知識(shí)。全書(shū)巨細(xì)靡遺地為讀者展現(xiàn)了C 語(yǔ)言編程中最  立即去當(dāng)當(dāng)網(wǎng)訂購(gòu)

size_t 類(lèi)型表示C 中任何對(duì)象所能達(dá)到的最大長(zhǎng)度。它是無(wú)符號(hào)整數(shù),因?yàn)樨?fù)數(shù)在這里沒(méi)有意義。它的目的是提供一種可移植的方法來(lái)聲明與系統(tǒng)中可尋址的內(nèi)存區(qū)域一致的長(zhǎng)度。size_t 用做sizeof 操作符的返回值類(lèi)型,同時(shí)也是很多函數(shù)的參數(shù)類(lèi)型,包括malloc 和strlen。

在聲明諸如字符數(shù)或者數(shù)組索引這樣的長(zhǎng)度變量時(shí)用size_t 是好的做法。它經(jīng)常用于循環(huán)計(jì)數(shù)器、數(shù)組索引,,有時(shí)候還用在指針?biāo)阈g(shù)運(yùn)算上。

size_t 的聲明是實(shí)現(xiàn)相關(guān)的。它出現(xiàn)在一個(gè)或多個(gè)標(biāo)準(zhǔn)頭文件中,比如stdio.h 和stblib.h,典型的定義如下:

#ifndef __SIZE_T

#define __SIZE_T

typedef unsigned int size_t;

#endif

define 指令確保它只被定義一次。實(shí)際的長(zhǎng)度取決于實(shí)現(xiàn)。通常在32 位系統(tǒng)上它的長(zhǎng)度是32 位,而在64 位系統(tǒng)上則是64 位。一般來(lái)說(shuō),size_t 可能的最大值是SIZE_MAX。

通常size_t 可以用來(lái)存放指針,但是假定size_t 和指針一樣長(zhǎng)不是個(gè)好主意。稍后的“使用sizeof 操作符和指針”會(huì)講到,intptr_t 是更好的選擇。

打印size_t 類(lèi)型的值時(shí)要小心。這是無(wú)符號(hào)值,如果選錯(cuò)格式說(shuō)明符,可能會(huì)得到不可靠的結(jié)果。推薦的格式說(shuō)明符是%zu。不過(guò),某些情況下不能用這個(gè)說(shuō)明符, 作為替代,可以考慮%u 或%lu。

下面這個(gè)例子將一個(gè)變量定義為size_t,然后用兩種不同的格式說(shuō)明符來(lái)打。

size_t sizet = -5;

printf("%d\n",sizet);

printf("%zu\n",sizet);

因?yàn)閟ize_t 本來(lái)是用于表示正整數(shù)的,如果用來(lái)表示負(fù)數(shù)就會(huì)出問(wèn)題。如果為其賦一個(gè)負(fù)數(shù),然后用%d 和%zu 格式說(shuō)明符打印,就得到如下結(jié)果:
 
-5

4294967291

%d 把size_t 當(dāng)做有符號(hào)整數(shù),它打印出-5 因?yàn)樽兞恐写娣诺木褪?5。%zu 把size_t 當(dāng)做無(wú)符號(hào)整數(shù)。當(dāng)-5 被解析為有符號(hào)數(shù)時(shí),高位置為1,表示這個(gè)數(shù)是負(fù)數(shù)。當(dāng)它被解析為無(wú)符號(hào)數(shù)時(shí),高位的1 被當(dāng)做2 的乘冪。所以在用%zu 格式說(shuō)明符時(shí)才會(huì)看到那個(gè)大整數(shù)。

正數(shù)會(huì)正常顯示,如下所示:

sizet = 5;

printf("%d\n",sizet); // 顯示5

printf("%zu\n",sizet); // 顯示5

因?yàn)閟ize_t 是無(wú)符號(hào)的,一定要給這種類(lèi)型的變量賦正數(shù)。

點(diǎn)擊復(fù)制鏈接 與好友分享!回本站首頁(yè) 您對(duì)本文章有什么意見(jiàn)或著疑問(wèn)嗎?請(qǐng)到論壇討論您的關(guān)注和建議是我們前行的參考和動(dòng)力   上一篇:1.2.2  指針相關(guān)的預(yù)定義類(lèi)型 下一篇:2. 對(duì)指針使用sizeof操作符 相關(guān)文章

1.1.1 共享內(nèi)存多核系統(tǒng)與分布式內(nèi)

1.1.2 并行程序設(shè)計(jì)和多核程序設(shè)計(jì)

1.3 理解Amdahl法則

1.4 考慮Gustafson法則

1.6.1 以并發(fā)的思想指導(dǎo)設(shè)計(jì)

1.1 開(kāi) 發(fā) 背 景

1.2.1 需求分析

1.2.2 可行性分析

1.2.3 編寫(xiě)項(xiàng)目計(jì)劃書(shū)

1.3.1 系統(tǒng)目標(biāo)

圖文推薦


  本文關(guān)鍵詞:深入理解C指針,由筆耕文化傳播整理發(fā)布。



本文編號(hào):156429

資料下載
論文發(fā)表

本文鏈接:http://sikaile.net/wenshubaike/mishujinen/156429.html


Copyright(c)文論論文網(wǎng)All Rights Reserved | 網(wǎng)站地圖 |

版權(quán)申明:資料由用戶adeea***提供,本站僅收錄摘要或目錄,作者需要?jiǎng)h除請(qǐng)E-mail郵箱bigeng88@qq.com