在c语言中NULL的值为0

下面是写的一段测试代码,用gdb跟踪的结果,gdb甚至可以对跟踪的变量运算后再输出:

1       #include "stdio.h"
2       int main()
3       {
4               char *a=NULL;
5
6               if (!a){
7                       printf("AA\n");
8               }
9
10
(gdb) b 4
Breakpoint 1 at 0x40052c: file main.c, line 4.
(gdb) s
The program is not being run.
(gdb) r
Starting program: /home/yjbo/temp/main

Breakpoint 1, main () at main.c:4
4               char *a=NULL;
(gdb) n
6               if (!a){
(gdb) p a
$1 = 0x0
(gdb) p !a
$2 = 1
(gdb) p !a+1
$3 = 2

 

 

你可能感兴趣的:(在c语言中NULL的值为0)