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

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

【1】      空字符  空格字符(字符)【2】空字符串   【3】 NULL的区别

1.1 字符

(1)首先必须明确字符型(char)是整数类型,其在内存单元是以整数形式存放。

(2)其次,char类型的产生是为了用于:存储字母、数字、标点字符、非打印字符。

(3) 为方便处理字符,用特定的整数表示特定字符,即我们看到的编码。实质上就是一种转化代替的思想,用这种编码从而去描述字符,最常用的是ASCII码。

1.1.1  空字符 空格字符

 空字符:  字符串结尾的标志(\0),实际上他的数值是0。 可以理解为标志性字符型,其使命主要是为了表明字符串已经结束。

 空格字符: 空格字符( ’单引号中间有一个空格)的ASCII码10进制32,16进制的0X20

  两者区别

          最直观的区别:值不同两者的ASCII不同,空(NUL)字符码值是0,而空格字符的码值是32。再者,空字符人为规定了它的使命。

           附:‘0’ 的ASCII是48,不要跟前面两个混为一团。3者是完全不同的概念,其本身的整型值不同,代表的字符也不同。

 


1.2 字符串

       字符串:字符串属于字符类型的派生类型(char数组)。用于字符串一定要以空字符(‘\0’)结束,故所有的字符串里面一定有一个空字符。当然空字符串(“”)也不例 外。

                      字符与字符串因为是两种不同的类型,所以也容易区分,这里就不在啰嗦。

1.3  NULL

NULL:值为0,空值。NULL是空地址,不占用任何字节,主要是是用来给指针赋值的。其实就是0地址,这个地址在C语言里面是不允许访问的,访问会出异常。NULL一般用来初始化指针变量。例如:
char *str = NULL;   表明该变量不指向任何有效的内存区域,避免野指针。

 

#include<stdio.h>int main()
{char d = NULL;printf("%c \n" ,d );printf("NULL的ASCII码值:%d \n" ,d );if(NULL == '\0'){printf("true") ;}return 0;
}



注意以下几点:

(1)从Stdio.h 中我们可以看出:C++中 NULL为(int)0 ,而在 CNULL( void*  )0。据此可知在C和C++中NULL宏的值有所不同。

(2)C程序中NULL == '\0'为真 , 只是因为'\0'也是数值0而已,两者并不是一个意思,千万别搞混了。

3)NULL 可以赋值给任意类型变量,相应值为空

4)为编程规范,在定义指针时,一般需要初始化,常用NULL来初始化。

      int  *p = NULL,相比直接定义int *p 而言,int   *p未初始化,p是一个野指针,保存的是一个随机值 ; int *p=NULL 已经初始化,指向一个空指针。

      int    *p  =   NULL等价于于 int   *p= 0,p的值是 0x00;int *  q  ,q的值是一个随机值。

附字符串的输出例子:

/*Jason Gel  2015-8-29 */#include<stdio.h>
int main ()
{char * p = "Jason Gel jin13277480598";char *q = NULL;if(q=='\0'&&q==0){printf("NULL在ASCII码值为0,同空字符 \n");} //	while(*p != '\0')    	//下面这两种写法是等价的 ;
// *和++具有相等的优先级,但结合为从右向左,又因为后缀形式 故 :向将p指向的数据取出打印,然后指针再自增1 while(*p!= 0)  //如果写成 while( *p++ !=0 ) ,则字符串的第一个字符不会被打印出来 {printf("%c",*p++ );}printf("  \n ");return 0 ;
} 


 

 


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

相关文章

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>…

HTML的特殊字符

平时写代码很少用到HTML的特殊字符&#xff0c;最常用的可能是 了&#xff0c;但有时在移动端为了节省时间&#xff0c;可能会用这些字符实现某种特殊效果&#xff0c;现整理如下&#xff1a; 使用方法&#xff1a; 这些字符属于unicode字符集&#xff0c;所以&#xff0c;你…