最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C/C++中獲取數(shù)組長度的方法示例

 更新時間:2014年08月18日 09:55:10   投稿:shichen2014  
這篇文章主要介紹了C/C++中獲取數(shù)組長度的方法,很實用的一種方法,需要的朋友可以參考下

學(xué)過C/C++的人都知道,在C/C++中并沒有提供直接獲取數(shù)組長度的函數(shù),對于存放字符串的字符數(shù)組提供了一個strlen函數(shù)獲取其長度,那么對于其他類型的數(shù)組如何獲取他們的長度呢?

其中一種方法是使用sizeof(array) / sizeof(array[0]), 在C語言中習(xí)慣上在使用時都把它定義成一個宏,比如:

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

而在C++中則可以使用模板技術(shù)定義一個函數(shù),比如:

template <class T>
int getArrayLen(T& array)
{
  return (sizeof(array) / sizeof(array[0]));
}

這樣對于一些簡單的數(shù)組可以使用這個宏或者這個函數(shù)來獲取數(shù)組的長度了。
 
以下是兩個Demo程序,一個C語言的,一個C++的:

注意:若數(shù)組為存儲字符串的字符數(shù)組,即以雙引號括起來的字符串整體初始化的字符數(shù)組

例如:

char a[]="abcdefg"

或者

char a[]={"abcdefg"}

則所求得的長度為字符數(shù)組的長度,而不是對應(yīng)的字符串的長度,要求字符串的長度還需要減一。原因為存儲字符串的字符數(shù)組末尾有一個'\0'字符,需要去掉它。

對于下例:

char a[]="abcdefg";
sizeof(a)/sizeof(a[0])=8;

要求字符串長度的話應(yīng)該減1.

但對于:

char a[]={'a','b','c','d','e','f','g'};
sizeof(a)/sizeof(a[0])=7

C語言實例如下:

#include <stdio.h>
#include <stdlib.h>
 
#define GET_ARRAY_LEN(array,len) {len = (sizeof(array) / sizeof(array[0]));}
//定義一個帶參數(shù)的宏,將數(shù)組長度存儲在變量len中
int main()
{
 char a[] = {'1','2','3','4'};
 int len;
 
 GET_ARRAY_LEN(a,len)
//調(diào)用預(yù)定義的宏,取得數(shù)組a的長度,并將其存儲在變量len中
 printf("%d\n",len);
 
 system("pause");
 return 0;
}

輸出結(jié)果為:4
 
C++實例如下:

#include <iostream>
using namespace std;
 
template <class T>
int getArrayLen(T& array) //使用模板定義一個函數(shù)getArrayLen,該函數(shù)將返回數(shù)組array的長度
{ 
 return (sizeof(array) / sizeof(array[0]));
}
int main()
{
 char a[] = {'1','2','3'};
 cout << getArrayLen(a) << endl;
 
 return 0;
}

輸出結(jié)果為:3

相關(guān)文章

  • C++自定義API函數(shù)實現(xiàn)大數(shù)相乘算法

    C++自定義API函數(shù)實現(xiàn)大數(shù)相乘算法

    這篇文章主要為大家詳細介紹了C++自定義API函數(shù)實現(xiàn)大數(shù)相乘算法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • c語言中static修飾函數(shù)的方法及代碼

    c語言中static修飾函數(shù)的方法及代碼

    在本篇內(nèi)容里小編給大家分享的是一篇關(guān)于c語言中static如何修飾函數(shù)的知識點內(nèi)容,有需要朋友們可以跟著學(xué)習(xí)下。
    2021-10-10
  • 淺談C語言函數(shù)調(diào)用參數(shù)壓棧的相關(guān)問題

    淺談C語言函數(shù)調(diào)用參數(shù)壓棧的相關(guān)問題

    下面小編就為大家?guī)硪黄獪\談C語言函數(shù)調(diào)用參數(shù)壓棧的相關(guān)問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • C++中main函數(shù)怎樣調(diào)用類內(nèi)函數(shù)

    C++中main函數(shù)怎樣調(diào)用類內(nèi)函數(shù)

    這篇文章主要介紹了C++中main函數(shù)怎樣調(diào)用類內(nèi)函數(shù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • C語言實現(xiàn)猜數(shù)字小游戲

    C語言實現(xiàn)猜數(shù)字小游戲

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)猜數(shù)字小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • C/C++高精度算法的實現(xiàn)

    C/C++高精度算法的實現(xiàn)

    這篇文章主要介紹了C/C++高精度算法的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • C++實現(xiàn)五子棋游戲

    C++實現(xiàn)五子棋游戲

    這篇文章主要為大家詳細介紹了C++實現(xiàn)五子棋游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • VS2019+MPI配置過程的實現(xiàn)步驟

    VS2019+MPI配置過程的實現(xiàn)步驟

    本文介紹了在VS2019上配置MPI,包括下載和安裝MPI、創(chuàng)建項目、配置屬性、導(dǎo)入頭文件和庫文件、添加依賴項等步驟,具有一定的參考價值,感興趣的可以了解一下
    2024-12-12
  • 深入分析C中不安全的sprintf與strcpy

    深入分析C中不安全的sprintf與strcpy

    本篇文章是對C中不安全的sprintf與strcpy函數(shù)的使用進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • C++中的new/delete、構(gòu)造/析構(gòu)函數(shù)、dynamic_cast分析

    C++中的new/delete、構(gòu)造/析構(gòu)函數(shù)、dynamic_cast分析

    這篇文章主要介紹了C++中的new/delete、構(gòu)造/析構(gòu)函數(shù)、dynamic_cast分析 本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05

最新評論

辉县市| 祁连县| 新昌县| 偃师市| 平潭县| 长白| 察隅县| 昭通市| 嘉禾县| 湛江市| 裕民县| 咸丰县| 垣曲县| 南阳市| 满城县| 蒲江县| 健康| 丹江口市| 玉山县| 潮州市| 舒兰市| 松原市| 厦门市| 漯河市| 蚌埠市| 海安县| 新民市| 新建县| 平湖市| 平潭县| 建湖县| 林甸县| 舟山市| 兴化市| 涟水县| 怀宁县| 保德县| 阿勒泰市| 汪清县| 博野县| 新建县|