<menu id="w8yyk"><menu id="w8yyk"></menu></menu>
  • <dd id="w8yyk"><nav id="w8yyk"></nav></dd>
    <menu id="w8yyk"></menu>
    <menu id="w8yyk"><code id="w8yyk"></code></menu>
    <menu id="w8yyk"></menu>
    <xmp id="w8yyk">
    <xmp id="w8yyk"><nav id="w8yyk"></nav>
  • 網站首頁 > 物聯資訊 > 技術分享

    C: 數組形參

    2016-09-28 00:00:00 廣州睿豐德信息科技有限公司 閱讀
    睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接

    知識這個東西,真是知道的越多就不知道的越多,C/C++這塘水得多深啊,哈哈。
    看下面3個片段:
    <一>

    1 void fun(char a[100]) { 2         fprintf(stderr, "%s\n", a); 3 } 4   5 int main(void) { 6         char aa[200] = "abcdef"; 7         fun(aa); 8 }

    <二>

    1 void fun(char a[]) { 2         fprintf(stderr, "%s\n", a); 3 } 4   5 int main(void) { 6         char aa[200] = "abcdef"; 7         fun(aa); 8 }

    <三>

    1 void fun(char* a) { 2         fprintf(stderr, "%s\n", a); 3 } 4   5 int main(void) { 6         char aa[200] = "abcdef"; 7         fun(aa); 8 }

    以上三個片段的輸出其實是一樣的:

    abcdef
    
    • fun(char a[100]):實際上這里數組長度100會被編譯器忽略,唯一可能起的作用是提示調用者這里應該傳入一個長度為100的數組,但這種提示也是毫無約束性的。
    • fun(char a[]):這里a[]的作用是可以提示調用者這里處理的是一個數組而并不是char*,但是編譯器還是會將a當作一個char*來處理,也就是說如果你在fun()函數中測試sizeof(a)的話,你得到的是一個指針的長度(在32位機器上一般是4)。
    • fun(char *a):這種形式應該是普通青年最常用的方式了吧……^_^,一般還會加一個數組長度參數len 。
    RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成
    最近免费观看高清韩国日本大全