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

C 語言 scanf 缺少取址符 & 導致編譯錯誤/運行崩潰

     編輯:程式設計疑難解答

錯誤代碼

scanf("%d", n); // ❌ 缺少 &

正確代碼

scanf("%d", &n); // ✅ 加上取址符

原理解析

  • scanf 需要將讀取的值**寫入變數的記憶體地址**。
  • n 是變數的**值**,&n 才是變數的**地址**。
  • 缺少 & 會導致 scanf 將輸入寫入錯誤記憶體位置,輕則輸入無效,重則程式崩潰 (Segmentation Fault)。

擴展:常見 scanf 陷阱

錯誤寫法正確寫法說明
scanf("%d", a);scanf("%d", &a);基本型別必須取址
scanf("%s", &str);scanf("%s", str);字元陣列/指標本身即地址,不可再加 &
scanf("%d %d", &a, &b);scanf("%d %d", &a, &b);多變數每個都要加 &
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved