- 最後登錄
- 2023-1-16
- 在線時間
- 3 小時
- 註冊時間
- 2011-10-20
- 閱讀權限
- 95
- 精華
- 0
- UID
- 10446824
- 帖子
- 5
- 積分
- 1010 點
- 潛水值
- 13380 米
| 成為伊莉的版主,你將獲得更高級和無限的權限。把你感興趣的版面一步步地發展和豐盛,那種滿足感等著你來嚐嚐喔。
想請問一下,同樣的字串內容,為何在MAIN程式裡外所SIZEOF出來的值會不一樣呢?
|
附件: 你需要登錄才可以下載或查看附件。沒有帳號?註冊 |
所有積分大於負-100的壞孩子,將可獲得重新機會成為懲罰生,權限跟幼兒生一樣。 |
| |
| |
- 最後登錄
- 2024-4-24
- 在線時間
- 0 小時
- 註冊時間
- 2013-1-24
- 閱讀權限
- 20
- 精華
- 0
- UID
- 12541808
- 帖子
- 1051
- 積分
- 617 點
- 潛水值
- 27320 米
| 成為伊莉的版主,你將獲得更高級和無限的權限。把你感興趣的版面一步步地發展和豐盛,那種滿足感等著你來嚐嚐喔。 在C/C++ 中. 傳送陣列到副程式 實際上只是把陣列的開始address 傳過去. 變成一個指標型別. 當然就不會跟本來的array 大小一樣
另指標占用的大小因不同系統大小一定. 一般在32bit windows 下為4byte. 64bit 為8byte
|
|
|
| |
| |
- 最後登錄
- 2024-4-25
- 在線時間
- 0 小時
- 註冊時間
- 2017-7-7
- 閱讀權限
- 20
- 精華
- 0
- UID
- 3646205
- 帖子
- 73
- 積分
- 0 點
- 潛水值
- 13010 米
| 如果發覺自己無法使用一些功能或出現問題,請按重新整理一次,並待所有網頁內容完全載入後5秒才進行操作。 如果要相同的話,是要再輸入的地方加入*嗎? 這樣才能抓取到他的指標位置 |
|
若瀏覽伊莉的時侯發生問題或不正常情況,請使用Internet Explorer(I.E)。 |
| |
| |
mountainboy 該用戶已被刪除 | 分享使你變得更實在,可以使其他人感到快樂,分享是我們的動力。今天就來分享你的資訊、圖片或檔案吧。 sizeof 是靜態函數,也就是編譯時已定!你的例子中sizeof(str2),因str2 是靜態宣告,所以sizeof 算真實字元+1個0結束字串字元。在length()中的sizeof(str),因為是動態參數傳送(此例為call by reference),所以sizeof(str)只算資料型態的空間。如前面人所提,指標的空間為4 bytes (32-bit system) 或 8 bytes (64-bit system。
如果要得到相同答案,可以兩個字串宣告移到最上方,變成全域變數。... |
|
如果瀏覽伊莉時速度太慢或無法連接,可以使用其他分流瀏覽伊莉,www01.eyny.com(02,03)。 |
| |
| |
mountainboy 該用戶已被刪除 | mountainboy 發表於 2018-11-17 09:38 PM
sizeof 是靜態函數,也就是編譯時已定!你的例子中sizeof(str2),因str2 是靜態宣告,所以sizeof 算真實字 ...
運算子也是函數的一種!例如加法(+),也可以寫成(+, 1 2),結果是3. 數學上,函數是定義域到值域的轉換。從這個角度,sizeof 當然是函數,它接收一個值,對映到另一個值!...
|
|
若對尊貴或贊助會員有任何疑問,歡迎向我們查詢。我們的即時通或MSN: admin@eyny.com |
| |
| |
mountainboy 該用戶已被刪除 | 若瀏覽伊莉的時侯發生問題或不正常情況,請使用Internet Explorer(I.E)。 逗點在一般程式語言中只是個分隔符號(token),不是運算子喔!關於”但在程式語言來說,函數是需要括號的,而運算子不用”,我先前的例子來自Scheme 語言,所有運算子都是以函數括號呈現!所不同的是sizeof()是靜態函數,在編譯時就知道結果了,類似巨集。但巨集也是函數。所以通常都叫巨集函數! |
|
回覆中加入附件並不會使你增加積分,請使用主題方式發佈附件。 |
| |
| |
- 最後登錄
- 2024-4-23
- 在線時間
- 28991 小時
- 註冊時間
- 2011-12-11
- 閱讀權限
- 95
- 精華
- 3
- UID
- 10643381
- 帖子
- 3222
- 積分
- 24364 點
- 潛水值
- 77140 米
| 若有安裝色情守門員,可用無界、自由門等軟件瀏覽伊莉。或使用以下網址瀏覽伊莉: http://www.eyny.com:81/index.php mountainboy 發表於 2018-11-18 08:17 PM
逗點在一般程式語言中只是個分隔符號(token),不是運算子喔!關於”但在程式語言來說,函數是需要括號的, ...
這邊是 C/C++ 版區,自然是談這個了 ... |
|
Melty Snow [雪靈] |
| |
| |
mountainboy 該用戶已被刪除 | 若對尊貴或贊助會員有任何疑問,歡迎向我們查詢。我們的即時通或MSN: admin@eyny.com 你應該去查ISO的C++17 標準,cppreference.com 當參考就好!
C++ 的逗號有特殊用途,而它也會傳回一個值。setbuf()不是不傳回值,而是傳回的值是void型。
你的例子#define TAG "EOF",其實定義域是TAG, 值域是"EOF" 也是函數。
我不用函式,那個不是function 的真意! |
|
如果你忘記伊莉的密碼,請在登入時按右邊出現的 '找回密碼'。輸入相關資料後送出,系統就會把密碼寄到你的E-Mail。 |
| |
| |
- 最後登錄
- 2021-12-2
- 在線時間
- 1 小時
- 註冊時間
- 2018-8-14
- 閱讀權限
- 20
- 精華
- 0
- UID
- 16095891
- 帖子
- 132
- 積分
- 129 點
- 潛水值
- 1850 米
| cockroachrun是對的, sizeof是在compiler time就決定了,你想得到一樣的值你也可以把string移到length()裡 |
|
回覆中加入附件並不會使你增加積分,請使用主題方式發佈附件。 |
| |
| |
- 最後登錄
- 2022-8-15
- 在線時間
- 1 小時
- 註冊時間
- 2009-6-19
- 閱讀權限
- 20
- 精華
- 0
- UID
- 6576743
- 帖子
- 353
- 積分
- 347 點
- 潛水值
- 12540 米
| z1090128 發表於 2018-11-17 07:29 PM
如果要相同的話,是要再輸入的地方加入*嗎? 這樣才能抓取到他的指標位置
如同cockroachrun與mountainboy提到的 ...
|
|
若有安裝色情守門員,可用無界、自由門等軟件瀏覽伊莉。或使用以下網址瀏覽伊莉: http://www.eyny.com:81/index.php |
| |
| |
- 最後登錄
- 2024-4-25
- 在線時間
- 0 小時
- 註冊時間
- 2017-7-7
- 閱讀權限
- 20
- 精華
- 0
- UID
- 3646205
- 帖子
- 73
- 積分
- 0 點
- 潛水值
- 13010 米
| 也就是說你第一個回傳的是矩陣的大小,但第二個的是那個矩陣位置的大小,因為你是用char,所以在C中char的大小為1 byte,所以才會只有八個位元? |
|
若有安裝色情守門員,可用無界、自由門等軟件瀏覽伊莉。或使用以下網址瀏覽伊莉: http://www.eyny.com:81/index.php |
| |
| |
- 最後登錄
- 2023-11-28
- 在線時間
- 0 小時
- 註冊時間
- 2013-5-12
- 閱讀權限
- 20
- 精華
- 0
- UID
- 9696368
- 帖子
- 71
- 積分
- 49 點
- 潛水值
- 5160 米
| 分享使你變得更實在,可以使其他人感到快樂,分享是我們的動力。今天就來分享你的資訊、圖片或檔案吧。 void length(char *str,char strbyte)
{
...........
}
呼叫時
length(str,sizeof(str)); |
|
|
| |
| |
Powered by Discuz!
© Comsenz Inc.
重要聲明:本討論區是以即時上載留言的方式運作,對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本討論區受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者發現有留言出現問題,請聯絡我們。有權刪除任何留言及拒絕任何人士上載留言,同時亦有不刪除留言的權利。切勿上傳和撰寫 侵犯版權(未經授權)、粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。