欢迎您 本站地址:  

C 库宏 - NULL

C 标准库 - <stddef.h> C 标准库 - <stddef.h>

描述

C 库宏 NULL 是一个空指针常量的值。

声明

下面是取决于编译器的 NULL 宏的声明。

#define NULL ((char *)0)

或

#define NULL 0L

或

#define NULL 0

参数

返回值

用法

实例

下面的实例演示了 NULL 宏的用法。

实例 1

#include <stddef.h>
#include <stdio.h>

int main ()
{
   FILE *fp;

   fp = fopen("file.txt", "r");
   if( fp != NULL )
   {
      printf("成功打开文件 file.txt\n");
      fclose(fp);
   }

   fp = fopen("nofile.txt", "r");
   if( fp == NULL )
   {
      printf("不能打开文件 nofile.txt\n");
   }
   
   return(0);
}

假设文件 file.txt 已存在,但是 nofile.txt 不存在。让我们编译并运行上面的程序,这将产生以下结果:

成功打开文件 file.txt
不能打开文件 nofile.txt

动态内存分配:

实例

#include <stdio.h>
#include <stdlib.h>

int main() {
    int *ptr = (int*)malloc(sizeof(int) * 10);

    if (ptr == NULL) {
        printf("Memory allocation failed\n");
        return 1;
    }

    // 使用分配的内存
    for (int i = 0; i < 10; i++) {
        ptr[i] = i;
    }

    // 释放分配的内存
    free(ptr);
    ptr = NULL; // 将指针设置为 NULL

    return 0;
}

函数参数:

实例

#include <stdio.h>
#include <string.h>

void printString(const char *str) {
    if (str == NULL) {
        printf("String is NULL\n");
    } else {
        printf("String: %s\n", str);
    }
}

int main() {
    char *string1 = "Hello, World!";
    char *string2 = NULL;

    printString(string1); // 输出: String: Hello, World!
    printString(string2); // 输出: String is NULL

    return 0;
}

注意事项

相关信息

C 标准库 - <stddef.h> C 标准库 - <stddef.h>

小库提示

扫描下方二维码,访问手机版。