• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 319, comments - 22, trackbacks - 0, articles - 11
              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            C、C++中沒(méi)有提供直接獲取數(shù)組長(zhǎng)度的函數(shù),對(duì)于存放字符串的字符數(shù)組提供了一個(gè)strlen函數(shù)獲取長(zhǎng)度,那么對(duì)于其他類(lèi)型的數(shù)組如何獲取他們的長(zhǎng)度呢?其中一種方法是使用sizeof(array) / sizeof(array[0]), 在C語(yǔ)言中習(xí)慣上在 使用時(shí)都把它定義成一個(gè)宏,比如#define GET_ARRAY_LEN(array,len) {len = (sizeof(array) / sizeof(array[0]));} 。而在C++中則可以使用模板技術(shù)定義一個(gè)函數(shù),比如:

            template <class T>

            int getArrayLen(T& array)

            {

            return (sizeof(array) / sizeof(array[0]));

            }

            這樣對(duì)于不同類(lèi)型的數(shù)組都可以使用這個(gè)宏或者這個(gè)函數(shù)來(lái)獲取數(shù)組的長(zhǎng)度了。以下是兩個(gè)Demo程序,一個(gè)C語(yǔ)言的,一個(gè)C++的:

            P.S:若數(shù)組為存儲(chǔ)字符串的字符數(shù)組,則所求得的長(zhǎng)度還需要減一,即對(duì)于宏定義: #define GET_ARRAY_LEN(array,len) {len = (sizeof(array) / sizeof(array[0]) - 1 );} ,對(duì)于函數(shù)定義:

            template <class T>

            int getArrayLen(T& array)

            {

            return (sizeof(array) / sizeof(array[0]) - 1);

            }

            原因?yàn)榇鎯?chǔ)字符串的字符數(shù)組末尾有一個(gè)'\0'字符,需要去掉它。

            【C語(yǔ)言】

            #include <stdio.h>

            #include <stdlib.h>

            #define GET_ARRAY_LEN(array,len){len = (sizeof(array) / sizeof(array[0]));}

            //定義一個(gè)帶參數(shù)的宏,將數(shù)組長(zhǎng)度存儲(chǔ)在變量len中

            int main()

            {

            char a[] = {'1','2','3','4'};

            int len;

            GET_ARRAY_LEN(a,len)

            //調(diào)用預(yù)定義的宏,取得數(shù)組a的長(zhǎng)度,并將其存儲(chǔ)在變量len中

            printf("%d\n",len);

            system("pause");

            return 0;

            }

            【C++】

            #include <iostream>

            using namespace std;

            template <class T>

            int getArrayLen(T& array)

            {//使用模板定義一個(gè)函數(shù)getArrayLen,該函數(shù)將返回?cái)?shù)組array的長(zhǎng)度

            return (sizeof(array) / sizeof(array[0]));

            }

            int main()

            {

            char a[] = {'1','2','3'};

            cout << getArrayLen(a) << endl;

            return 0;

            }


            C/C++中如何獲取數(shù)組的長(zhǎng)度?
            麻豆精品久久久一区二区| 久久噜噜久久久精品66| 久久久精品人妻一区二区三区蜜桃| 国内精品久久久久影院老司| 亚洲国产精品无码久久98| 久久成人国产精品| 国产精品欧美久久久久无广告 | 99久久夜色精品国产网站| 蜜臀av性久久久久蜜臀aⅴ麻豆| 国产精品毛片久久久久久久| 久久精品中文字幕有码| 久久久亚洲欧洲日产国码aⅴ | 国产精品久久久天天影视香蕉| 精品久久久久久久| 久久婷婷是五月综合色狠狠| 久久精品99久久香蕉国产色戒| 久久99热这里只有精品国产| 久久国产欧美日韩精品| 亚洲精品视频久久久| 国产精品欧美亚洲韩国日本久久| 色综合久久中文字幕无码| 久久久艹| 久久99精品久久久久久秒播| 美女写真久久影院| 国产精品国色综合久久| 蜜臀久久99精品久久久久久小说 | 久久综合九色综合欧美狠狠| 亚洲AV无码1区2区久久| 99久久综合国产精品免费| 久久www免费人成精品香蕉| 欧美一区二区精品久久| 精品久久久无码人妻中文字幕豆芽| 久久久久亚洲精品日久生情 | 一本久久知道综合久久| 香蕉久久夜色精品国产2020| 久久久久久A亚洲欧洲AV冫| 精品久久久久久无码中文字幕| 99久久国产主播综合精品| 国产A级毛片久久久精品毛片| 久久精品一区二区三区不卡| 女人香蕉久久**毛片精品|