zoukankan      html  css  js  c++  java
  • 关于c语言中NULL的数值是否可以被修改

    #include <stdio.h>
    #include <stdlib.h>
    #define NULL 2
    /* run this program using the console pauser or add your own getch, system("pause") or input loop */
    
    int main(int argc, char *argv[]) 
    {
        int a = NULL;
        int *p = NULL;
        printf("a=%d p=%p
    ",a,p); 
    #undef NULL//随意串改NULL的数值可能会应发一些问题,但这里没影响 #define NULL ((void *)0)
    return 0;
    }

    编译结果如下图所示:

    显然NULL是宏定义,是可以被修改的,在C语言中他表示一个地址,在c++中是数字0

    #define NULL 0                  //C++
    #define NULL ((void *)0)    //C
    //nulptr是C++11的关键字,表示空指针,在我调试的环境下,指向的是0地址,其他环境位未知
  • 相关阅读:
    课后listview作业
    安卓sql
    activity带数据跳转
    安卓第四周作业
    15周作业
    十三周作业-集合
    十三周上机练习
    12周作业
    linux
    Questions.
  • 原文地址:https://www.cnblogs.com/still-smile/p/13364074.html
Copyright © 2011-2022 走看看