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地址,其他环境位未知
  • 相关阅读:
    SpringBoot项目设置maven打包时间
    SpringBoot热部署配置
    Git笔记
    SpringBoot LogBack日志配置
    CURL使用教程
    Linux 安装Docker及使用
    转发和重定向的区别
    16周作业
    16
    15周
  • 原文地址:https://www.cnblogs.com/still-smile/p/13364074.html
Copyright © 2011-2022 走看看