日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

二级指针与指针数组的关系

發(fā)布時間:2023/11/30 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 二级指针与指针数组的关系 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

http://blog.csdn.net/shuaishuai80/article/details/6129742

  • #include?<stdio.h>??
  • ??
  • void?test(char?*argv[]);??
  • ??
  • int?main(void)??
  • {??
  • ?char?*argv[3]={{"abcdefg"},{"1234567"},{"q1w2e3r"}};??
  • ??
  • ?test(argv);???/*調(diào)用指針數(shù)組時,可直接使用指針數(shù)組名*/??
  • ?return?0;??
  • }??
  • ??
  • void?test(char?*argv[])??
  • {??
  • ?char?**p=argv;??
  • ???
  • ?/***測試1組***/??
  • ?printf("argv[0]=0x%x,argv[0]=%s/n",argv[0],argv[0]);???
  • ?printf("argv[1]=0x%x,argv[1]=%s/n",argv[1],argv[1]);??
  • ?printf("argv[2]=0x%x,argv[2]=%s/n",argv[2],argv[2]);??
  • ??
  • ?/***測試2組***/??
  • ?printf("p=0x%x/n",p);??
  • ?printf("argv[0]=0x%x/n",argv[0]);??
  • ?printf("&argv[0]=0x%x/n",&argv[0]);??
  • ???
  • ?/***測試3組***/??
  • ?printf("*p=%s/n",*p);??
  • ?printf("*(p+1)=%s/n",*(p+1));??
  • ?printf("*(p+2)=%s/n",*(p+2));??
  • ???
  • ?/***測試4組***/??
  • ?printf("*p=%s/n",*p);??
  • ?printf("(*p+1)=%s/n",(*p+1));??
  • ?printf("(*p+2)=%s/n",(*p+2));??
  • ???
  • ?/***測試5組***/??
  • ?printf("p=0x%x/n",p);??
  • ?printf("argv=0x%x/n",argv);??
  • ?printf("&argv[0]=0x%x/n",&argv[0]);???
  • ?printf("&argv[1]=0x%x/n",&argv[1]);??
  • ?printf("&argv[2]=0x%x/n",&argv[2]);??
  • ???
  • ?/***測試6組***/??
  • ?printf("sizeof(argv)=%d/n",sizeof(argv));??
  • }??
  • ?

    ?

    (1)指針數(shù)組argv中每個元素都是指針,即每個元素都是字符串的首地址.因此測試1組輸出結(jié)果為:
    ?????? argv[0]=0x4270ac,argv[0]=abcdefg
    ?????? argv[1]=0x426034,argv[1]=1234567
    ?????? argv[2]=0x42601c,argv[2]=q1w2e3r
    ????
    (2)二級指針p指向指針數(shù)組argv的首地址處.因此測試2組輸出結(jié)果為:
    ?????? p=0x13ff74??????????????? /*二級指針p中存放了指針數(shù)組argv所在(連續(xù))地址空間的首地址*/
    ?????? argv[0]=0x4270ac???? /*字符串0首地址*/
    ????? ?&argv[0]=0x13ff74??? /*字符串0首地址所在存儲空間的地址*/
    ?? 可以看出,二級指針p所指向的地址與指針數(shù)組中首元素所在存儲空間地址相同,均為0x13ff74.

    (3)從測試3組可知,二級指針p中存放了指針數(shù)組argv所在(連續(xù))地址空間的首地址,換句話說,二級指針p中存放的是地址,所以,*p是該地址中的內(nèi)容,即字符串0的首地址.因此測試3組輸出結(jié)果為:
    ?????? *p=abcdefg
    ?????? *(p+1)=1234567
    ?????? *(p+2)=q1w2e3r

    (4)從測試2組可知,二級指針p中存放了指針數(shù)組argv所在(連續(xù))地址空間的首地址,因此測試4組輸出結(jié)果為:
    ?????? (*p)=abcdefg
    ?????? (*p+1)=bcdefg
    ?????? (*p+2)=cdefg

    (5)從測試2組可知,二級指針p中存放了指針數(shù)組argv所在(連續(xù))地址空間的首地址,因此測試5組輸出結(jié)果為:
    ?????? p=0x13ff74
    ?????? argv=0x13ff74
    ?????? &argv[0]=0x13ff74
    ?????? &argv[1]=0x13ff78
    ?????? &argv[2]=0x13ff7c
    ?? 再次驗證了二級指針p與指針數(shù)組中各成員之間的關(guān)系.

    (6)由于是指針型數(shù)據(jù),因此測試6組輸出結(jié)果為:? sizeof(argv)=4


    總結(jié)

    以上是生活随笔為你收集整理的二级指针与指针数组的关系的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。