中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
C語言中字符數(shù)組和字符串指針分析

C語言中字符數(shù)組和字符串指針分析

    這幾天搞Unix上的C程序,里面用到了很多字符數(shù)組和字符串指針,我記得在學(xué)完C語言后相當(dāng)一段時(shí)間里,對(duì)指針這個(gè)東西還是模模糊糊,后來工作也沒怎么用到過C,雖然網(wǎng)上這類的文章也有很多,還是決定自己在這做個(gè)小總結(jié),也算加深下自己的印象,寫了下面的測(cè)試程序:

#include <stdio.h>

int main(int argc, char *argv[])
{

  char day[15] = "abcdefghijklmn";
  char* strTmp = "opqrstuvwxyz";

  printf("&day is %x\n",&day);
  printf("&day[0] is %x\n",&day[0]);
  printf("day is %x\n",day);
 
  printf("\n&strTmp is %x\n",&strTmp);
  printf("&strTmp[0] is %x\n",&strTmp[0]);
  printf("strTmp is %x\n",strTmp);
 
  getchar(); 
  return 0;
}

運(yùn)行后屏幕上得到如下結(jié)果:



其實(shí)看到結(jié)果估計(jì)很多東西就好明白了,

    先看看前三個(gè)輸出也就是關(guān)于變量day的,在 char day[15] = "abcdefghijklmn"; 這個(gè)語句執(zhí)行的時(shí)候,系統(tǒng)就分配了一段長15的內(nèi)存,并把這段內(nèi)存起名為day,里面的值為"abcdefghijklmn",如下圖所示:


        再看程序,第一個(gè)輸出,&day,&號(hào)是地址運(yùn)算符,也就是day這個(gè)變量的內(nèi)存地址,很明顯,在最前面,也就是a字符所在字節(jié)的地址;
        對(duì)于第二個(gè)輸出也就好理解了,&day[0],就是day數(shù)組中第一個(gè)變量(也就是a)的地址,因此他們兩個(gè)是一樣的;
        第三個(gè)輸出是day,對(duì)于數(shù)組變量,可以使用變量名來索引變量中的內(nèi)容,其實(shí)這里的day可以理解成數(shù)組變量退化的指針,并且指向數(shù)組的開頭,既然把它理解成指針,那么它的值肯定是地址了,所以他的值和上面兩個(gè)也一樣。

    再看看后面三個(gè)輸出,關(guān)于字符串指針strTmp,在執(zhí)行char* strTmp = "opqrstuvwxyz";后,內(nèi)存的圖示如下:


如圖所示,內(nèi)存分配了兩段內(nèi)存,一個(gè)名為strTmp,類型是一個(gè)字符指針,另外一段是一個(gè)字符串常量,且strTmp里面存放著字符常量的首地址,注意這里無法通過strTmp修改這段字符串,因?yàn)槭浅A?;于是程序中的后面三個(gè)輸出就好理解了;
    
  &strTmp:strTmp這個(gè)字符指針的地址
  &strTmp[0]:strTmp所指字符常量第一個(gè)字符的地址
  strTmp:strTmp這個(gè)字符指針的值,即字符常量的首地址

因此,最后兩個(gè)的值是一樣的。
      指針可以這樣理解,指針這種類型,和int,char,double等等是一樣的,只是它用來保存地址值的,而int變量保存整數(shù),char變量保存字符,僅此而已,就char型指針或者int指針,本質(zhì)是一樣的,都是存放的地址,只不過那個(gè)地址所里面的變量類型不同而已,還有一種void型指針,就是可以放任何類型變量的地址。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
char argv, char argv[], char* argv, char argv[][], char * argv[], char** argv, char (*argv)[]
C語言難點(diǎn)分析整理
字符指針、字符數(shù)組用法大總結(jié)(字符串處理)
指針
計(jì)算機(jī)二級(jí)學(xué)習(xí)網(wǎng)址
5.1 單項(xiàng)選擇題
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服