首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

C語言入門必知:scanf 忘記取地址符導致運行崩潰

     編輯:程式設計疑難解答

典型錯誤

初學者編寫計算圓周長的程序,編譯通過但運行直接崩潰:

#include <stdio.h>
int main() {
    float a, r = 0;
    printf("please enter the radius of a circle:");
    scanf("%f", r);  // 錯誤:缺少 & 取地址符
    a = 2 * 3.1416 * r;
    printf("The radius of the circle is:%f", a);
    return 0;
}

錯誤原因

scanf 需要變量的地址來存儲輸入值,r 是浮點數值而非地址,導致非法內存訪問。

正確寫法

scanf("%f", &r);  // 加上 & 取地址符

舉一反三

所有 scanf 系列函數(%d, %f, %lf 等)讀取基本類型時,參數必須是變量地址。字符數組名本身就是地址,故 %s 不需加 &。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved