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

打印 上一主题 下一主题

主题 844|帖子 844|积分 2532


  • '\0'NUL 字符,它是一个字符常量,其 ASCII 值为 0。这个字符用于标记 C 风格字符串的结尾。
  • NULL 是一个宏定义,通常被定义为整数常量 0 或 (void *)0,用来表示空指针。它用于指针操纵,表示该指针不指向任何有用的内存地址。
固然 '\0' 和 NULL 在内部都大概表现为数值 0,但它们的应用场景和意义是不同的:

  • '\0' (NUL 字符):用于字符串处置惩罚,作为字符串的终止符。
  • NULL:用于指针操纵,表示空指针。
示例

  1. #include <stdio.h>
  2. int main() {
  3.     // NUL 字符 '\0' 用于字符串结束
  4.     char str[] = "hello";
  5.     str[5] = '\0'; // 实际上这是多余的,因为 "hello" 已经包含 '\0'
  6.     printf("String: %s\n", str); // 输出字符串直到遇到 '\0'
  7.     // NULL 用于指针初始化或比较
  8.     int *ptr = NULL;
  9.     if (ptr == NULL) {
  10.         printf("Pointer is null.\n");
  11.     }
  12.     return 0;
  13. }
复制代码
在这个例子中:


  • str 是一个以 \0 结尾的字符串。
  • ptr 是一个被初始化为 NULL 的指针,表示它当前不指向任何有用内存地址。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

八卦阵

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表