找回密碼 或 安全提問
 註冊
|註冊|登錄

伊莉討論區

搜索
尊貴會員無限使用任何功能尊貴會員無限觀看附件圖片儲值後自動升級用戶組
上原亞衣fc2cosplay催眠gdmgoffice
sone 303聖華mide 736adn 622dark elfelevatorlucie wi

休閒聊天興趣交流學術文化旅遊交流飲食交流家庭事務PC GAMETV GAME
熱門線上其他線上感情感性寵物交流家族門派動漫交流貼圖分享BL/GL
音樂世界影視娛樂女性頻道潮流資訊BT下載區GB下載區下載分享短片
電腦資訊數碼產品手機交流交易廣場網站事務長篇小說體育運動時事經濟
上班一族博彩娛樂

[繁]機械臂04-

[繁]刀劍神域外傳 Gun

[繁]七龍珠大魔04-

[繁]七龍珠大魔06-

[繁]海賊王 魚人島篇

[繁]被逐出隊伍的治癒
C & C++ 語言C# 語言Visual Basic 語言PHP 語言JAVA 語言
查看: 3604|回復: 11
打印上一主題下一主題

[問題](請教)字串位元組疑惑[複製鏈接]

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

帖子
5
積分
1010 點
潛水值
13380 米
跳轉到指定樓層
樓主
發表於 2018-11-5 04:53 PM|只看該作者|倒序瀏覽
所有積分大於負-100的壞孩子,將可獲得重新機會成為懲罰生,權限跟幼兒生一樣。


想請問一下,同樣的字串內容,為何在MAIN程式裡外所SIZEOF出來的值會不一樣呢?

附件: 你需要登錄才可以下載或查看附件。沒有帳號?註冊
分享分享0收藏收藏0支持支持0

使用道具檢舉

Rank: 2Rank: 2

帖子
1050
積分
617 點
潛水值
27390 米
頭香
發表於 2018-11-5 05:22 PM|只看該作者
在C/C++ 中. 傳送陣列到副程式 實際上只是把陣列的開始address 傳過去. 變成一個指標型別. 當然就不會跟本來的array 大小一樣

另指標占用的大小因不同系統大小一定. 一般在32bit windows 下為4byte. 64bit 為8byte

使用道具檢舉

帖子
72
積分
0 點
潛水值
13250 米
3
發表於 2018-11-17 07:29 PM|只看該作者
如果瀏覽伊莉時速度太慢或無法連接,可以使用其他分流瀏覽伊莉,www01.eyny.com(02,03)。
如果要相同的話,是要再輸入的地方加入*嗎?  這樣才能抓取到他的指標位置
所有積分大於負-100的壞孩子,將可獲得重新機會成為懲罰生,權限跟幼兒生一樣。

使用道具檢舉

mountainboy 該用戶已被刪除
4
發表於 2018-11-17 09:38 PM|只看該作者
如果你忘記伊莉的密碼,請在登入時按右邊出現的 '找回密碼'。輸入相關資料後送出,系統就會把密碼寄到你的E-Mail。
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。

如果要得到相同答案,可以兩個字串宣告移到最上方,變成全域變數。...
瀏覽完整內容,請先 註冊登入會員

點評

snowflying sizeof 不是函數,是運算子  發表於 2018-11-17 11:57 PM

使用道具檢舉

mountainboy 該用戶已被刪除
5
發表於 2018-11-18 12:17 AM|只看該作者
若對尊貴或贊助會員有任何疑問,歡迎向我們查詢。我們的即時通或MSN: admin@eyny.com
mountainboy 發表於 2018-11-17 09:38 PM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

sizeof 是靜態函數,也就是編譯時已定!你的例子中sizeof(str2),因str2 是靜態宣告,所以sizeof 算真實字 ...

運算子也是函數的一種!例如加法(+),也可以寫成(+, 1 2),結果是3. 數學上,函數是定義域到值域的轉換。從這個角度,sizeof 當然是函數,它接收一個值,對映到另一個值!...
瀏覽完整內容,請先 註冊登入會員





點評

snowflying 也不是每個運算子都具有定義域到值域的關係,像是 ","  發表於 2018-11-18 01:07 PM
snowflying 但在程式語言來說,函數是需要括號的,而運算子不用  發表於 2018-11-18 01:02 PM
如果瀏覽伊莉時速度太慢或無法連接,可以使用其他分流瀏覽伊莉,www01.eyny.com(02,03)。

使用道具檢舉

mountainboy 該用戶已被刪除
6
發表於 2018-11-18 08:17 PM|只看該作者
逗點在一般程式語言中只是個分隔符號(token),不是運算子喔!關於”但在程式語言來說,函數是需要括號的,而運算子不用”,我先前的例子來自Scheme 語言,所有運算子都是以函數括號呈現!所不同的是sizeof()是靜態函數,在編譯時就知道結果了,類似巨集。但巨集也是函數。所以通常都叫巨集函數!
若新密碼無法使用,可能是數據未更新。請使用舊密碼看看。

使用道具檢舉

  尊貴會員

Melty Snow  雪靈

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

帖子
3230
積分
24427 點
潛水值
78830 米
7
發表於 2018-11-18 10:11 PM|只看該作者
如果你忘記伊莉的密碼,請在登入時按右邊出現的 '找回密碼'。輸入相關資料後送出,系統就會把密碼寄到你的E-Mail。
mountainboy 發表於 2018-11-18 08:17 PM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

逗點在一般程式語言中只是個分隔符號(token),不是運算子喔!關於”但在程式語言來說,函數是需要括號的, ...

這邊是 C/C++ 版區,自然是談這個了
...
瀏覽完整內容,請先 註冊登入會員
Melty Snow [雪靈]
若瀏覽伊莉的時侯發生問題或不正常情況,請使用Internet Explorer(I.E)。

使用道具檢舉

mountainboy 該用戶已被刪除
8
發表於 2018-11-20 07:53 AM|只看該作者
你應該去查ISO的C++17 標準,cppreference.com 當參考就好!
C++ 的逗號有特殊用途,而它也會傳回一個值。setbuf()不是不傳回值,而是傳回的值是void型。
你的例子#define TAG "EOF",其實定義域是TAG, 值域是"EOF" 也是函數。
我不用函式,那個不是function 的真意!
若對尊貴或贊助會員有任何疑問,歡迎向我們查詢。我們的即時通或MSN: admin@eyny.com

使用道具檢舉

Rank: 1

帖子
131
積分
129 點
潛水值
1850 米
9
發表於 2018-11-28 01:14 AM|只看該作者
cockroachrun是對的, sizeof是在compiler time就決定了,你想得到一樣的值你也可以把string移到length()裡
成為伊莉的版主,你將獲得更高級和無限的權限。把你感興趣的版面一步步地發展和豐盛,那種滿足感等著你來嚐嚐喔。

使用道具檢舉

Rank: 2Rank: 2

帖子
353
積分
347 點
潛水值
12540 米
10
發表於 2018-11-28 07:37 PM|只看該作者
若新密碼無法使用,可能是數據未更新。請使用舊密碼看看。
z1090128 發表於 2018-11-17 07:29 PM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

如果要相同的話,是要再輸入的地方加入*嗎?  這樣才能抓取到他的指標位置

如同cockroachrun與mountainboy提到的
...
瀏覽完整內容,請先 註冊登入會員





使用道具檢舉

帖子
72
積分
0 點
潛水值
13250 米
11
發表於 2018-12-1 07:46 PM|只看該作者
所有積分大於負-100的壞孩子,將可獲得重新機會成為懲罰生,權限跟幼兒生一樣。
也就是說你第一個回傳的是矩陣的大小,但第二個的是那個矩陣位置的大小,因為你是用char,所以在C中char的大小為1 byte,所以才會只有八個位元?
所有積分大於負-100的壞孩子,將可獲得重新機會成為懲罰生,權限跟幼兒生一樣。

使用道具檢舉

Rank: 1

帖子
71
積分
49 點
潛水值
5170 米
12
發表於 2018-12-10 04:49 PM|只看該作者
成為伊莉的版主,你將獲得更高級和無限的權限。把你感興趣的版面一步步地發展和豐盛,那種滿足感等著你來嚐嚐喔。
void length(char *str,char strbyte)
{
    ...........
}
呼叫時
length(str,sizeof(str));
分享使你變得更實在,可以使其他人感到快樂,分享是我們的動力。今天就來分享你的資訊、圖片或檔案吧。

使用道具檢舉

您需要登錄後才可以回帖 登錄 | 註冊

Powered by Discuz!

© Comsenz Inc.

重要聲明:本討論區是以即時上載留言的方式運作,對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本討論區受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者發現有留言出現問題,請聯絡我們。有權刪除任何留言及拒絕任何人士上載留言,同時亦有不刪除留言的權利。切勿上傳和撰寫 侵犯版權(未經授權)、粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。
回頂部