国产成人v爽在线免播放观看,日韩欧美色,久久99国产精品久久99软件,亚洲综合色网站,国产欧美日韩中文久久,色99在线,亚洲伦理一区二区

學(xué)習(xí)啦 > 學(xué)習(xí)英語(yǔ) > 專(zhuān)業(yè)英語(yǔ) > 計(jì)算機(jī)英語(yǔ) > c語(yǔ)言中void的用法

c語(yǔ)言中void的用法

時(shí)間: 長(zhǎng)思709 分享

c語(yǔ)言中void的用法

  c語(yǔ)言中void的用法的用法你知道嗎?下面小編就跟你們?cè)敿?xì)介紹下c語(yǔ)言中void的用法的用法,希望對(duì)你們有用。

  c語(yǔ)言中void的用法的用法如下:

  void指針是什么?

  void指針一般被稱(chēng)為通用指針或泛指針,它是C關(guān)于“純粹地址(raw address)”的一種約定。void指針指向某個(gè)對(duì)象,但該對(duì)象不屬于任何類(lèi)型。請(qǐng)看下例:

  int *ip;

  void *p;

  在上例中,ip指向一個(gè)整型值,而p指向的對(duì)象不屬于任何類(lèi)型。

  在C中,任何時(shí)候你都可以用其它類(lèi)型的指針來(lái)代替void指針(在C++中同樣可以),或者用void指針來(lái)代替其它類(lèi)型的指針(在C++中需要進(jìn)行強(qiáng)制轉(zhuǎn)換),并且不需要進(jìn)行強(qiáng)制轉(zhuǎn)換。例如,你可以把char *類(lèi)型的指針傳遞給需要void指針的函數(shù)。

  什么時(shí)候使用void指針?

  當(dāng)進(jìn)行純粹的內(nèi)存操作時(shí),或者傳遞一個(gè)指向未定類(lèi)型的指針時(shí),可以使用void指針。void指針也常常用作函數(shù)指針。

  有些C代碼只進(jìn)行純粹的內(nèi)存操作。在較早版本的C中,這一點(diǎn)是通過(guò)字符指針(char *)實(shí)現(xiàn)的,但是這容易產(chǎn)生混淆,因?yàn)槿藗儾蝗菀着袛嘁粋€(gè)字符指針究竟是指向一個(gè)字符串,還是指向一個(gè)字符數(shù)組,或者僅僅是指向內(nèi)存中的某個(gè)地址。

  例如,strcpy()函數(shù)將一個(gè)字符串拷貝到另一個(gè)字符串中,strncpy()函數(shù)將一個(gè)字符串中的部分內(nèi)容拷貝到另一個(gè)字符串中:

  char *strepy(char'strl,const char *str2);

  char *strncpy(char *strl,const char *str2,size_t n);

  memcpy()函數(shù)將內(nèi)存中的數(shù)據(jù)從一個(gè)位置拷貝到另一個(gè)位置:

  void *memcpy(void *addrl,void *addr2,size_t n);

  memcpy()函數(shù)使用了void指針,以說(shuō)明該函數(shù)只進(jìn)行純粹的內(nèi)存拷貝,包括NULL字符(零字節(jié))在內(nèi)的任何內(nèi)容都將被拷貝。請(qǐng)看下例:

  #include "thingie.h" /* defines struct thingie */

  struct thingie *p_src,*p_dest;

  /* ... */

  memcpy(p_dest,p_src,sizeof(struct thingie) * numThingies);

  在上例中,memcpy()函數(shù)要拷貝的是存放在structthingie結(jié)構(gòu)體中的某種對(duì)象op_dest和p_src都是指向structthingie結(jié)構(gòu)體的指針,memcpy()函數(shù)將把從p_src指向的位置開(kāi)始的sizeof(stuctthingie) *numThingies個(gè)字節(jié)的內(nèi)容拷貝到從p_dest指向的位置開(kāi)始的一塊內(nèi)存區(qū)域中。對(duì)memcpy()函數(shù)來(lái)說(shuō),p_dest和p_src都僅僅是指向內(nèi)存中的某個(gè)地址的指針。

533460