線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:10254
推到 Plurk!
推到 Facebook!

計算陣列 array 大小

答題得分者是:syntax
appleboy
一般會員


發表:1
回覆:1
積分:0
註冊:2007-08-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-02-04 10:26:25 IP:219.70.xxx.xxx 訂閱
比如說我宣告一個 int a[10];

那我要怎麼計算他的 array 個數?

在 php 可以利用 count 跟 foreach

這兩個函式在 bcb 裡面怎麼用?

一直卡在這裡

a[test1] = "test1";
a[test2] = "test2";

因為現在我存放一個陣列進去,可是我想要知道他的大小,就如同上面這樣

請問我該如何寫呢?
------
http://blog.wu-boy.com
編輯記錄
appleboy 重新編輯於 2008-02-04 12:12:26, 註解 無‧
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-02-04 12:01:40 IP:61.64.xxx.xxx 訂閱
參閱 BCB Help on sizeof 與 StrLen

===================引 用 appleboy 文 章===================
比如說我宣告一個 int a[10];

那我要怎麼計算他的 array 個數?

在 php 可以利用 count 跟 foreach

這兩個函式在 bcb 裡面怎麼用?

一直卡在這裡

a[test1] = "test1";
a[test2] = "test2";

因為現在我存放一個陣列進去,可是我想要知道他的大小,就如同上面這樣

請問我刊如何寫呢?
appleboy
一般會員


發表:1
回覆:1
積分:0
註冊:2007-08-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-02-04 12:39:36 IP:219.70.xxx.xxx 訂閱
感謝妳,陣列的大小,我已經知道怎麼處理了

for (int i = 0; i < (sizeof(total)/sizeof(int)); i )
{
total[i] = 0;
}

這樣就可以知道 total 的陣列大小了

那我還有一個問題,如果陣列是長這樣

a[test1];
a[test2];

我要怎麼取的 test1, test2 這兩個變數

for (int i = 0; i < (sizeof(a)/sizeof(int)); i )

{
}

也就是像 foreach 一樣的功能

===================引 用 syntax 文 章===================
參閱 BCB Help on sizeof 與 StrLen

------
http://blog.wu-boy.com
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-02-04 13:49:20 IP:75.18.xxx.xxx 未訂閱
把C++的HANDBOOK拿出來翻翻看了嗎?
C++的陣列大小必須是固定的序數!你的想法在C++下無法成立,除非你改用動態記憶體配置的方式。
===================引 用 appleboy 文 章===================
感謝妳,陣列的大小,我已經知道怎麼處理了

for (int i = 0; i < (sizeof(total)/sizeof(int)); i )
{
total[i] = 0;
}

這樣就可以知道 total 的陣列大小了

那我還有一個問題,如果陣列是長這樣

a[test1];
a[test2];

我要怎麼取的 test1, test2 這兩個變數

for (int i = 0; i < (sizeof(a)/sizeof(int)); i )

{
}

也就是像 foreach 一樣的功能

===================引 用 syntax 文 章===================
參閱 BCB Help on sizeof 與 StrLen
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-02-04 17:49:41 IP:61.64.xxx.xxx 訂閱
enum
{
test1, test2, test3 ....
}

a[test1]; 相當於 a[0]
===================引 用 appleboy 文 章===================
感謝妳,陣列的大小,我已經知道怎麼處理了

for (int i = 0; i < (sizeof(total)/sizeof(int)); i )
{
total[i] = 0;
}

這樣就可以知道 total 的陣列大小了

那我還有一個問題,如果陣列是長這樣

a[test1];
a[test2];

我要怎麼取的 test1, test2 這兩個變數

for (int i = 0; i < (sizeof(a)/sizeof(int)); i )

{
}

也就是像 foreach 一樣的功能

===================引 用 syntax 文 章===================
參閱 BCB Help on sizeof 與 StrLen
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-02-07 01:18:17 IP:61.64.xxx.xxx 訂閱
補充一下:
struct MemoryArray
{
int size;
type *lp_array;
}

#define Length(thearray) thearray.size;

這就是使用 C 模擬出 Delphi 的作法,在宣告的 array 前面,多加上(多宣告)一個區域,存放陣列的大小,所以 Length(array),才得以傳回大小
這是在使用複雜結構時的貼心設計,但是 C/C 必須自己來,所以才會越來越多人用 vector,而不用 array

但是並不表示 array 就是不好的東西或退流行的東西,因為 array 比 vector 快效率好,但比較不方便
如果你不需要在乎效能上的耗損,vector 是很方便的選擇之一

===================引 用 syntax 文 章===================
enum
{
test1, test2, test3 ....
}

a[test1]; 相當於 a[0]
===================引 用 appleboy 文 章===================
感謝妳,陣列的大小,我已經知道怎麼處理了

for (int i = 0; i < (sizeof(total)/sizeof(int)); i )
{
total[i] = 0;
}

這樣就可以知道 total 的陣列大小了

那我還有一個問題,如果陣列是長這樣

a[test1];
a[test2];

我要怎麼取的 test1, test2 這兩個變數

for (int i = 0; i < (sizeof(a)/sizeof(int)); i )

{
}

也就是像 foreach 一樣的功能

===================引 用 syntax 文 章===================
參閱 BCB Help on sizeof 與 StrLen
系統時間:2024-05-02 5:57:32
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!