2strlen A 為什麼等於7注 在vc 6 0環境

2022-11-01 04:40:26 字數 872 閱讀 2122

1樓:

char a[2];

作為字串時,a[1] 應作為存放字串結束符"\n"之用。

a[1]='1'; 把 "\n" 的位子佔用了,所以 strlen(a) 不能正確測得字串長度。

char a="01"; a 陣列長度是 3 才夠用。

這就是你得 7 (隨機/不一定)的原因。

2樓:匿名使用者

strlen,計算字串長度時,要計算到字串結尾處'\0'(ascii碼為0),由於你的字串沒有結尾字元,所以strlen會一直增加計數,直到在記憶體中遇到'\0',以下是除錯的時候檢視的,可以發現當a[7]時出現了一個'\0'

- a 0x0012ff7c "01燙?"

[0] 48 '0'

[1] 49 '1'

a[2] -52 '?

a[3] -52 '?

a[4] -64 '?

a[5] -1 ''

a[6] 18 ''

a[7] 0 ''

a[8] -87 '?

3樓:

那是因為的字元陣列沒有結束符'\0'

你定義了字元陣列a,大小為2,2個位置都被使用了,沒有放置結束符'\0'的地方。

可以修改如下:

# include

# include

void main()

;//定義3個,並全部初始化為0

a[0]='0';

a[1]='1';

cout<

}這樣的結果就是2了

4樓:

求大小應該用 sizeof 吧

1 1為什麼等於2?

1 1 王。1 1 田。語文角度的答案是。1 一個字加一個字等於一個詞 數學角度的答案是。2 物理角度的答案是。1 一個力加一個力等於其合力 化學角度的答案是1,2,3,甚至4,5,6 兩種化學物質反應產生的產物可能是多種的 動物角度的答案是1 弱肉強吃嘛,給吃了就還剩1了!從計算機2進位制算是10...

2的0次方為什麼等於,2的0次方為什麼等於

首先一個數 的n次方除以這個數的m次方等於這個數的 n m 次方 其中n大於m 所以一回個數的答n次方除以這個數的n次方就表示為這個數的 n n 次方,也就是這個數的0次方 又因為這個數的 n n 次方等於1 所以規定 任何除0以外的實數的0次方都是1當然2的0次方也等於1 2的零次方就bai是兩個...

為什麼sin2a等於sina

因為正弦函式的週期是2 加一個周期函式值是不變的,所以sin 2 a 等於sin a 理工學科 高中數學 選擇 題 急 急 急 急 急 axmax 2,ymax 2 x 2y max 2 2 2 6當ymax 2時可知有xmin 0 當xmax 2時可知有ymin 0 代入x 2y式子,知取ymin...