<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    選擇java 進入自由開放的國度

    隨筆 - 49, 文章 - 3, 評論 - 154, 引用 - 1
    數據加載中……

    C中傳地址和傳指針比較

    下面是在linux下察看文件大小的代碼,比較了C中傳地址和傳指針的用法,并指出了不同點和使用指針時的注意事項.

    傳地址:
    ?1?#include?<stdio.h>
    ?2?#include?<sys/stat.h>
    ?3?
    ?4?int?main()
    ?5?{
    ?6???char?*?filename?=?"/etc/passwd";
    ?7???
    ?8???struct?stat?infobuf1;
    ?9???if?(stat("/etc/passwd",?&infobuf)?==?-1)??
    10????????perror(filename);???????
    11???else
    12???{
    13???????printf("The?size?of?%s?is?%d\n",?filename,??infobuf.st_size);????
    14???}
    15???
    16???return?0;
    17?}
    18?
    必需使用地址符&,在引用結構體內的元素時使用.運算符.

    傳指針:
    ?1?#include?<stdio.h>
    ?2?#include?<sys/stat.h>
    ?3?
    ?4?int?main()
    ?5?{
    ?6???char?*?filename?=?"/etc/passwd";
    ?7???
    ?8???struct?stat?infobuf1;
    ?9???struct?stat?*?infobuf?=?&infobuf1;
    10???
    11???if(stat(filename,?infobuf)?==?-1)
    12????????perror(filename);???????
    13???else
    14???{??????
    15?????printf("The?size?of?%s?is?%d\n",?filename,??infobuf->st_size);
    16???}
    17???
    18???return?0;
    19?}
    20?
    在第9行聲明指針后,必需要進行初始化,否則在linux下,被初始化為一個隨機的地址,在第11行對其操作時酒會發聲錯誤(在linux下提示"段錯誤").在第15行,引用結構體內的元素時,使用地址運算符->,或者使用(*infobuf).st_size.

    總結:
    ??? 1、指針引用前必需初始化,初始化最簡單的辦法就是聲明一個同類型的變量,因為變量會被初始化,會被分配內存空間,所以指針就有指的地方了。如:傳指針程序段中的第8,9行。
    ??? 2、理解傳地址和傳指針的區別。不管怎么說都是要一個地址,譬如在函數stat(char * filename, struct stat * buf), 對于buf傳入時必須是一個地址,不管是指針或是一個變量的地址,歸根都是一樣的,都是內存中的同一塊區域。
    ??? 3、對于函數聲明為stat(char &filename, struct stat &buf)的形式,傳入時就不能是地址或者指針,而必需是變量了。

    posted on 2006-03-27 08:28 soochow_hhb 以java論成敗 以架構論英雄 閱讀(1137) 評論(0)  編輯  收藏 所屬分類: Reading

    主站蜘蛛池模板: 亚洲AV无码乱码精品国产| 国产成人精品日本亚洲网站| 亚洲精品视频在线播放| 日本中文字幕免费高清视频| 亚洲日韩乱码中文无码蜜桃臀网站 | 亚洲AV无码久久| 毛片在线全部免费观看| 亚洲国产精品无码久久久不卡| 色播在线永久免费视频网站| 亚洲国产精品无码成人片久久| 国产婷婷成人久久Av免费高清 | 波霸在线精品视频免费观看| 国产亚洲av片在线观看18女人 | 丰满少妇作爱视频免费观看| 亚洲人午夜射精精品日韩| 国产久爱免费精品视频| 亚洲码国产精品高潮在线| 无码一区二区三区免费| 亚洲网红精品大秀在线观看| 免费在线看v网址| 亚洲av中文无码字幕色不卡| heyzo亚洲精品日韩| 男人天堂免费视频| 亚洲国产精品日韩在线| 在线观看人成网站深夜免费| 色老头综合免费视频| 亚洲AV无码专区国产乱码电影| 16女性下面扒开无遮挡免费| 亚洲人成电影网站色www| 亚洲v国产v天堂a无码久久| 久久一区二区免费播放| 中文字幕亚洲免费无线观看日本| 成人奭片免费观看| 成人免费夜片在线观看| 亚洲国产一区在线| 免费看美女让人桶尿口| 国产真人无码作爱免费视频| 亚洲一级在线观看| 亚洲日本在线观看视频| 最近在线2018视频免费观看| 精品女同一区二区三区免费播放 |