认真理清 一一空字符('\0')、空指针(NULL)、\0、0

article/2025/10/30 23:34:53

在C/C++语言中我们经常看到’\0’、NULL。从概念上看两者完全不同,但是本质上他们都可以用数值0来表示。空指针是指针类型,而空字符是整形类型,两者有时很容易混淆。

NULL

空指针有一个值,该值不会与任何数据的有效值地址对应。通常,函数使用它返回一个有效地址表示某些特殊情况的发生,例如遇到文件结尾或未能按预期执行。

空指针是一个地址,通常占4个字节;通过一个例子测试空指针(NULL)是数值0来表示。

#include <stdio.h>int main(int argc, char const *argv[])
{int value = NULL;printf("value = %d\n",value );return 0;
}

输出结果
在这里插入图片描述实际上NULL通常是如下定义:

#define NULL (void*)0

验证了编译时候输出结果为0;

’\0’
空字符(’\0’)是用于标记C字符串结尾的字符。其对应的字符编码是0。

测试‘’\0’是否是数值0

#include <stdio.h>int main(int argc, char const *argv[])
{int num = '\0';printf("num = %d\n",num );return 0;
}

输出结果
在这里插入图片描述输出结果验证了’\0’是数值0;

因为每个字符串都以空字符结尾,所以不同给函数传递字符串大小,函数依次处理每个字符,直到遇到空字符。

常常会看到下面这样的指针表示写法

const char *str;
while (*str != '\0')putchar(*str++);

或者数组表示写法

int i = 0;
char str[128];
while (str[i] != '\0')putchar(str[i++]);

我们常见的C库函数strcat,strcmp,strcpy,都是遇到’\0’结束的。

"\0"与"0"

其实两者没有区别,用双引号" "都是字符串。字符串是以’\0’为结尾。

用sizeof和strlen测试字符串大小。

#include <stdio.h>
#include <string.h> //strlen
int main(int argc, char const *argv[])
{char str1[] = "\0";char str2[] = "0";printf("sizeof str1 = %d, strlen str1 = %d\n",sizeof(str1),strlen(str1));printf("sizeof str2 = %d, strlen str2 = %d\n",sizeof(str2),strlen(str2));return 0;
}

输出结果
在这里插入图片描述编译结果可以看出,sizeof计算字符串"0"后面是带有’\0’所以数值为2,而使用strlen计算字符串’\0’长度为0;

在这里插入图片描述

扫二维码关注微信公众号,获取技术干货


http://chatgpt.dhexx.cn/article/iUuNoRyf.shtml

相关文章

空字符 空格字符(字符) 空字符串 NULL的区别

【1】 空字符 空格字符&#xff08;字符&#xff09;【2】空字符串 【3】 NULL的区别 1.1 字符 &#xff08;1&#xff09;首先必须明确字符型&#xff08;char&#xff09;是整数类型&#xff0c;其在内存单元是以整数形式存放。 &#xff08;2&#xff09;其次&am…

CSS属性值的计算过程

属性值的计算过程 一个元素一个元素依次渲染&#xff0c;顺序按照页面文档的树形目录结构进行 渲染每个元素的前提条件&#xff1a;该元素的所有CSS属性必须有值 一个元素&#xff0c;从所有属性都没有值&#xff0c;到所有的属性都有值&#xff0c;这个计算过程&#xff0…

Java 反射设置/获取对象属性值

✨大家好&#xff0c;我是【zhuzicc】~ &#xff0c;一位主攻【Java】的 攻城狮&#xff01;✨ 欢迎对【Java】感兴趣的大佬&#xff0c;关注我 &#x1f61c; ———————————————— ❤️ ❤️ ❤️ 如果觉得本文还不错&#xff0c;点赞 评论 关注 收藏。有补充…

字段与属性

字段的使用: 1.关于字段 a.字段又称为&#xff1a;“成员变量”&#xff0c;一般在类的内部做数据交互使用。 b.字段命名规范&#xff1a;camel命名法&#xff08;Camel 命名法是指第一个单词小写&#xff0c;从第二个单词开始每个单词的首字母大写&#xff09;。 2.通俗的理解…

jQuery获取标签属性值(一)

1、box-shadow属性可以设置盒子阴影的效果其参数为&#xff1a; box-shadow: h-shadow v-shadow blur spread color inset; h-shadow必需的。水平阴影的位置。允许负值v-shadow必需的。垂直阴影的位置。允许负值blur可选。模糊距离spread可选。阴影的大小color可选。阴影的颜…

如何获取对象的属性及属性值

for(key in attr){//key:属性名//attr[key]:属性值 } 转载于:https://www.cnblogs.com/wanlibingfeng/p/10070080.html

JS中如何通过属性获取属性值

JS中如何通过属性获取属性值 const mySymbol Symbol()let obj {name:cwl,1: 1,true:bool,[mySymbol]: sym, }当属性名是字符串 一般通过 . 来访问 obj.name当属性名是数字时 obj[1] //√ obj.1 //报错当属性值是bool类型 obj[true] obj.true obj[true]当属性值为Symbol类…

获取object对象中的属性值

获取object对象中的属性值 先创建一个实体类并向上转型为Object类 假设实体类如下 public class WordDto {private String uuId;private Long id;private Long aid;private String content;}WordDto dtonew WordDto();dto.setAid(10000002L).setId(12L).setUuId("12345…

值类型属性??

再一次由于C#中值类型和引用类型的区别 犯了错误。 假设在类中包含一些值类型的成员&#xff08;比如结构&#xff0c;数组&#xff09;&#xff0c;你希望为外部程序提供访问和修改这些成员的能力&#xff0c;同时又不想直接暴露成员&#xff0c;在c#中最常见的做法就…

计算属性

1、什么是计算属性 计算属性&#xff1a;可以理解为能够在里面写一些计算逻辑的属性。 作用&#xff1a;1&#xff09;减少模板中的计算逻辑 2&#xff09;数据缓存。当我们的数据没有变化时&#xff0c;不在执行计算的过程 3&#xff09;依赖固定的数据类型&#xff08;响应式…

根据属性名获取、设置属性值

1.根据属性名获取属性值 可以通过JDK自带的反射下的getClass下的getDeclaredField并传递一个属性名字来获取该属性 属性名&#xff1a;fileName&#xff0c;对象&#xff1a;Object object&#xff1b; Field field object.getClass().getDeclaredField(fileName); 设置对象…

常用属性 属性值

文本属性&#xff08;用来修饰文本&#xff09; 1、font-size:数值单位&#xff1b; 字体大小 页面中默认字号大小为16px 2、font-family:字体名&#xff1b; 如果字体名为中文&#xff0c;引号可加可不加&#xff1b;如果字体名为一个英文单词&#xff0c;引号可不加&#…

.39属性名和属性值

一、属性名 对象的属性名可以随便起&#xff0c;但使用特殊字符时&#xff0c;需要用下面的形式 语法&#xff1a;对象[属性名]属性值 输出时也要采用该种形式 这种形式&#xff0c;更加常用&#xff0c;并且可以直接传递变量 二、属性值 属性值可以为任意的数据类型&…

对象的属性名与属性值

注意共有5个步骤&#xff0c;按顺序操作下去 1.在对象中保存的值称为属性&#xff0c;对象的属性名不强制要求遵守标识符规则&#xff0c;什么名称都可以&#xff0c;我对象属性的语法&#xff1a;1对象.属性名&#xff0c;注意&#xff1a;如果对象中没有的属性&#xff0c;不…

关于HTML中的那些特殊字符

一些特殊的符号&#xff0c;我们在html 里面很难或者不方便直接使用&#xff0c;我们此时可以使用下面的替代代码。 虽然有很多&#xff0c;但是我们平时用的比较较少&#xff0c; 大家重点记住 空格 大于号 小于号 就可以了&#xff0c;剩下的回来查阅。 总结&#xff1a; 是…

python处理HTML特殊字符

提取html数据时遇到特殊字符的问题 ",<,>都被转换为特殊字符&#xff0c;导致html页面一团乱麻 通过各种百度&#xff0c;最终找到python的html包处理相关特殊字符 最终结果

怎么在html中加特殊符号,html中特殊符号

html中特殊符号: 教你用输入法打出任意特殊符号&#xff0c;缺失&#xff1a;html中3248/9 最近老有人问我这个符号怎么打&#xff0c;那个符号怎么打。 我每次回答的都是&#xff0c;你要打的是特殊符号&#xff0c;这种特殊符号不能用输入法打出来&#xff0c;需要借助一些工…

Html特殊字符表(建议收藏)

Html特殊字符表(建议收藏) 原始字符entity原始字符entity"&quot ;&&amp ;’&#039 ;<&lt ;>&gt ;&nbsp ;¡&iexcl ;¢&cent ;£&pound ;&curren ;&yen ;&brvbar ;&sect ;&uml ;©&…

最全的HTML特殊字符列表

最全的HTML特殊字符列表 松柏 2004-08-17 13:40:10 摘要&#xff1a;从 CSDN 上发现的&#xff0c;听说是最全的HTML特殊字符列表 Nonbreaking space ¡ ¡ ¡ Inverted exclamation ¢ ¢ ¢ Cent sign £ £ £ Pound sterling …

HTML特殊字符代码大全

速查表 在html中展示特殊字符&#xff0c;需要采用特殊的编码格式&#xff0c;以下对这些代码进行了整理&#xff0c;以备查阅。 动手测一测 把以下代码复制到一个txt文件中&#xff0c;然后将文件后缀txt改为html&#xff0c;在浏览器里试试看吧。 <!DOCTYPE html>…