1. 程式人生 > >陣列長度計算

陣列長度計算

     (1)sizeof
     方法:sizeof(陣列名)/ sizeof(陣列型別名) 
     說明:陣列佔用位元組除以陣列型別所佔位元組,結果為陣列元素個數
    (2)strlen
     說明:strlen,求字串有效長度
     方法:strlen(字元陣列名)  //結果為字元陣列有效字元長度,不包括末尾的' /0'

注意:
當陣列作為函式引數傳遞時,陣列名代表的是陣列的首址,而非陣列內容,故無法使用sizeof和strlen;
所以,在傳址時,應提供2個引數:1個是陣列名,代表陣列首地址;1個是陣列元素個數,以便確定傳遞的次數。 例如: #include<iostream
>usingnamespace std;
void Sum(int array[ ])
{
cout
<<"sizeof(array)="<<sizeof(array)<<endl;
}
void main()
{
int a[ ]={1,2,3,4,5,6,7,8,9,10};
cout
<<"sizeof(a)="<<sizeof(a)<<endl;
Sum(a);
}
運算結果為: sizeof(a)=40
sizeof(array)=4
分析: 當陣列作為函式引數傳遞時,陣列名代表的是陣列的首址,即指標,而非陣列內容。如果傳遞整個陣列,會導致棧溢位的。 所以在主函式中使用sizeof計算出的是準確的陣列長度。而在呼叫函式中,由於傳遞的陣列不再是陣列本身,而是其地址,所以用sizeof計算出的,實際上是陣列地址的長度,這時的sizeof(array),實際上是sizeof(int)。

相關推薦

C:char 陣列長度計算

字元素組長度是計算‘\0’,還是不計算'\0'; char chs[7] = {'a', 'c', '0', 'z', '3','d'}; -----長度為6 char chs[7] = {'a', 'c', '0', 'z', '3','d', '/0'}; ------長度為6

陣列長度計算

     (1)sizeof     方法:sizeof(陣列名)/ sizeof(陣列型別名)      說明:陣列佔用位元組除以陣列型別所佔位元組,結果為陣列元素個數    (2)strlen     說明:strlen,求字串有效長度     方法:strlen(字元陣

js 關聯陣列長度計算

//關聯陣列長度 function getObjLength(obj){ var count=0; for(var name in obj){ if(typeof obj[name] == "o

C語言實現陣列長度計算方法

寫C時,經常要用到計算陣列長度,我一般用下面這種方法: #define LEN(x) sizeof(x) / sizeof(x[0]) 即利用庫函式sizeof來計算陣列長度,這種方法,對一維陣列和多維陣列都有效,如以下程式碼示例: #include "stdio.h"

動態計算結構體陣列長度

#include <stdio.h> #include <string.h> typedef struct S_MenuFun { int id; void

linux shell 陣列長度計算、修改、迴圈輸出等操作

在shell中,陣列變數的複製有兩種方法: (1) name = (value1 ... valuen)此時下標從0開始 (2) name[index] = value example: #1/bin/sh #arrayTest name=(yunix yhx yfj)

數組長度計算

length python ont 字節數 public 16px 真的 auto sys 在C語言中,有sizeof()這個關鍵字。可以用來計算數組的大小(數組所占字節數),但不是長度。 不過可以用它除以數組單個元素所占字節數計算長度: a[7] = {1,2,3

螺旋折線的長度計算

[] split 坐標 螺旋 ima print mat 分享圖片 http 輸入一個坐標,得出結果是按途中螺旋折線的長度,基本單位為1,要求:內存消耗< 256M public class Demo3 {public static void main(String

mongo陣列長度 陣列內容 查詢

在網上關於mongo陣列查詢的太少了,現在貢獻一下 假設資料庫裡有一條這樣的資料 {   "name": "arrayTest",   "arrayKey": ["a","b"] } 查詢 arrayKey長度是2的資料 :{arrayKey:{"$size

字元與字串中的'\0', '0', 0;strlen()函式求字串長度計算方法(sizeof()驗證)

如下字元陣列or字串,用strlen函式求長度各是多少? char * p = “abc” 與 char a[] = "abc"兩種形式並不同; char * str1 = "abc"; char * str2 = "ab\

C++使用變數作為陣列長度

C++中一般是不能使用變數作為一個數組的長度的,必須使用常量。 這是因為陣列作為C++的內建資料型別,其空間分配在棧記憶體中,這部分空間的大小在編譯時就要確定,不能等到執行時再分配。常量的值在編譯時就能得到,而變數的值在執行時才能確定。 但是仍然有辦法使用變數作為陣列的長度:繞過棧記憶體

測試陣列長度

通過sizeof函式 sizeof函式只能返回陣列所佔的位元組數並不能直接返回陣列的長度 例如: int a[2]; cout<<sizeof(a)<<sizeof(a[0])<<sizeof(a[1]); 返回的數分別為 8  ,4  , 4

單向非循環鏈表:鏈表創建、節點插入、鏈表打印、節點長度計算、鏈表清空、鏈表銷毀

lib pri i++ ins pty ini 打印 node alloc /* 單向非循環鏈表: 初始化 前插入 後插入 打印 鏈表長度 清空 銷毀*/#include <stdio.h>#include <s

單向非迴圈連結串列:連結串列建立、節點插入、連結串列列印、節點長度計算、連結串列清空、連結串列銷燬

/* 單向非迴圈連結串列:    初始化    前插入     後插入    列印    連結串列長度    清空 &

sizeof求陣列長度&陣列名特點

                                          &

vue中判斷陣列長度length報錯

{{pawnList.length>0 ? pawnList.name : ''}} 報錯:Error in render: "TypeError: Cannot read property 'length' of undefined"   解決辦法: {{pawnL

9024:單鏈表的遍歷與長度計算

Problem Description 建立非空單鏈表,完成遍歷操作,並且計算單鏈表的長度。  Input 輸入資料有多組,每組資料佔一行: 每行數字表示單鏈表的各個結點值(數字個數不會超過100個),以0結束一個單鏈表的輸入; 例如:1 2 3 4 5 0 代表一

給定一個數組和一個數(該數不一定在陣列中),從數組裡刪掉這個數字,返回剩下的陣列長度

給定一個數組和一個數(該數不一定在陣列中),從數組裡刪掉這個數字,返回剩下的陣列長度。 如:A[] = {1, 2, 3, 4, 5}要刪除數字 3,那麼返回陣列長度為 4。 親愛的小夥伴們,題目是不是很簡單呢? 提示:int removeElement(int

LeetCode-陣列移出元素與刪除重複項,返回操作後的陣列長度

移出元素 給定 nums = [3,2,2,3], val = 3, 函式應該返回新的長度 2, 並且 nums 中的前兩個元素均為 2。 你不需要考慮陣列中超出新長度後面的元素。 記得返回的是陣列的長度 class Solution { public: int removeEl

json資料處理(如果name值為空歸為其它,如果陣列長度大於15,超出15的部分歸為其它)

adata = {"resolution":{"540x960":3,"1080x1920":4,"1080x2160":2,"720x1080":1}, "brand":{"":10}, "versio