#include const int arsize = 8;
int sum_arr(int arr, int n);
int main()
; std::cout << cookies << " = array address, ";
std::cout << sizeof cookies << " = size of cookies\n";
int sum = sum_arr(cookies, arsize);
std::cout << "totsl cookies eaten: " << sum << std::endl;
return 0;
}int sum_arr(int arr, int n)
比如這裡,輸出結果為
0x7fffffffddc0 = array address, 32 = size of cookies
0x7fffffffddc0 = arr, 8 = sizeof arr
totsl cookies eaten: 255
這意味著,std::cout << sizeof arr << " = sizeof arr\n";這裡的arr實際上只是乙個指向陣列第乙個元素位址的指標。sizeof arr等於8意味著這個指標的大小為8位元組(對應64位作業系統)。而上面的std::cout << sizeof cookies << " = size of cookies\n";sizeof cookies指的是整個陣列大小為32。
所以,在編寫c++程式時,不能像python那樣,直接傳整個陣列,然後length(arr)(此時arr只是乙個指標,無法知道陣列大小),必須要顯式地指出陣列的長度。
C 使用localtime函式需要注意的地方
cpp include time t tmnow time null tm ptmnow localtime tmnow 從tm結構體中可以取到年月日時分秒等值。這裡localtime返回了乙個tm指標,空間是由localtime自己控制的,所以如果連續呼叫這個函式會有問題。很多時候我們會同時處理兩...
C 使用localtime函式需要注意的地方
cpp view plain copy include time t tmnow time null tm ptmnow localtime tmnow 從tm結構體中可以取到年月日時分秒等值。這裡localtime返回了乙個tm指標,空間是由localtime自己控制的,所以如果 連續呼叫這個函式...
C 使用localtime函式需要注意的地方
在處理時間時用到了localtime這個函式,將乙個utc時間轉為本地時間 cpp include time t tmnow time null tm ptmnow localtime tmnow 從tm結構體中可以取到年月日時分秒等值。這裡localtime返回了乙個tm指標,空間是由localt...