[英]type conversion data printing Error in C lang
在 C
int n=100;
printf("%d", (int)(sqrt((double)n)));
當我使用此代碼時,它會打印正確答案 (10)。
但是下面的代碼總是打印 0
int n;
int max = (int)(sqrt((double)n));
printf("%d", max);
為什么答案不同?
int n=100;
printf("%d", (int)(sqrt((double)n)));
在這種情況下,n 的值是已知的,即 100。所以sqrt((double)n)
返回正確的值。
int n;
int max = (int)(sqrt((double)n));
printf("%d", max);
這里,變量 n 未初始化。 變量可能持有一個不確定的值,這取決於它是在本地(在塊內,在這種情況下 n 的值將是垃圾值)還是全局(在塊外,在這種情況下 n 的值將為零) )。 始終初始化變量以避免此類錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.