C语言中NUL和NULL、‘\0‘之间的关系

  • '\0'NUL 字符,它是一个字符常量,其 ASCII 值为 0。这个字符用于标记 C 风格字符串的结尾。

  • NULL 是一个宏定义,通常被定义为整数常量 0 或 (void *)0,用来表示空指针。它用于指针操作,表示该指针不指向任何有效的内存地址。

虽然 '\0'NULL 在内部都可能表现为数值 0,但它们的应用场景和意义是不同的:

  1. '\0' (NUL 字符):用于字符串处理,作为字符串的终止符。
  2. NULL:用于指针操作,表示空指针。

示例

#include <stdio.h>

int main() {
    // NUL 字符 '\0' 用于字符串结束
    char str[] = "hello";
    str[5] = '\0'; // 实际上这是多余的,因为 "hello" 已经包含 '\0'

    printf("String: %s\n", str); // 输出字符串直到遇到 '\0'

    // NULL 用于指针初始化或比较
    int *ptr = NULL;
    if (ptr == NULL) {
        printf("Pointer is null.\n");
    }

    return 0;
}

在这个例子中:

  • str 是一个以 \0 结尾的字符串。
  • ptr 是一个被初始化为 NULL 的指针,表示它当前不指向任何有效内存地址。
相关推荐
Catherinemin19 分钟前
剑指Offer|LCR 031. LRU 缓存
javascript·算法·缓存
从零开始学习人工智能40 分钟前
安装指南:LLaMA Factory、AutoGPTQ 和 vllm
人工智能·python·深度学习·算法
WeeJot嵌入式1 小时前
【Linux】进程间通信IPC
linux·运维·算法
jerry2011081 小时前
python之二维几何学习笔记
开发语言·python·算法
云端 架构师1 小时前
PL/SQL语言的文件操作
开发语言·后端·golang
廖显东-ShirDon 讲编程2 小时前
《零基础Go语言算法实战》【题目 4-6】随机选择单链表的一个节点并返回
算法·程序员·go语言·web编程·go web
廖显东-ShirDon 讲编程2 小时前
《零基础Go语言算法实战》【题目 2-20】通过泛型比较大小
算法·程序员·go语言·web编程·go web
王景程2 小时前
Java冒泡排序算法之:变种版
java·数据结构·算法
AQin10122 小时前
【伪随机数】关于排序算法自测如何生成随机数而引发的……
算法·random·随机数·伪随机数
大G哥2 小时前
记录一次RPC服务有损上线的分析过程
java·开发语言·网络·网络协议·rpc