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 的指针,表示它当前不指向任何有效内存地址。
相关推荐
橘子编程2 分钟前
UniApp跨端开发终极指南
开发语言·vue.js·uni-app
sinat_255487817 分钟前
泛型:超级、扩展、列表·学习笔记
java·windows·学习·算法
切糕师学AI7 分钟前
Elasticsearch RRF(倒数排序融合)技术详解与实践
算法·elasticsearch·搜索引擎·混合搜索·rrf·归一化问题
冬至喵喵8 分钟前
构建 CLI 的 Python 框架:Typer技术介绍
开发语言·chrome·python
AbandonForce12 分钟前
STL list
开发语言·c++
水饺编程12 分钟前
第4章,[标签 Win32] :SysMets3 程序讲解05,水平滚动
c语言·c++·windows·visual studio
前端老石人13 分钟前
HTML 入门指南:从规范视角建立正确知识体系
开发语言·前端·html
lihao lihao14 分钟前
进程地址空间
数据结构·c++·算法
Byte不洛14 分钟前
LeetCode双指针经典题
c++·算法·leetcode·双指针
汀、人工智能16 分钟前
[特殊字符] 第16课:最小覆盖子串
数据结构·算法·数据库架构·图论·bfs·最小覆盖子串