ฉันได้รับอนุญาตให้ใช้NULL
ตัวชี้แทนค่า0
ใช่หรือไม่
หรือมีอะไรผิดปกติเกี่ยวกับการทำเช่นนั้น?
ตัวอย่างเช่น:
int i = NULL;
เพื่อทดแทนสำหรับ:
int i = 0;
ในการทดลองฉันรวบรวมรหัสต่อไปนี้:
#include <stdio.h>
int main(void)
{
int i = NULL;
printf("%d",i);
return 0;
}
เอาท์พุท:
0
อันที่จริงมันทำให้ฉันเตือนนี้ซึ่งถูกต้องสมบูรณ์ด้วยตัวเอง:
warning: initialization makes integer from pointer without a cast [-Wint-conversion]
แต่ผลลัพธ์ยังคงเท่าเดิม
- ฉันกำลังเข้าสู่ "พฤติกรรมที่ไม่ได้กำหนด" กับสิ่งนี้หรือไม่?
- อนุญาตให้ใช้
NULL
ในลักษณะนี้ได้ไหม - มีอะไรผิดปกติ
NULL
ไหมในการใช้เป็นค่าตัวเลขในนิพจน์เชิงคณิตศาสตร์? - และผลลัพธ์และพฤติกรรมใน C ++ สำหรับกรณีนี้คืออะไร
ฉันได้อ่านคำตอบของอะไรคือความแตกต่างระหว่างโมฆะ '\ 0' และ 0เกี่ยวกับสิ่งที่แตกต่างระหว่างNULL
, \0
และ0
เป็น แต่ฉันไม่ได้รับข้อมูลที่รัดกุมจากที่นั่นถ้ามันเป็นที่อนุญาตมากและยังมีสิทธิที่จะใช้NULL
เป็น ค่าที่จะดำเนินการด้วยในการมอบหมายและการดำเนินการเกี่ยวกับคณิตศาสตร์อื่น ๆ