首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

NULL00,“0”,0你真的分得清吗?

前言 在C语言中,我们有时候看到NULL,有时候也看到'\0',那它们之间有什么区别呢? 本质 本质来说,NULL0,'\0'都是一样,都是值0。是的,你没有听错。说到这本文差不多应该结束了。...它们虽然值都是0,但是含义却是不一样NULL 虽然值是0,但是它含义不一样,或者说它类型不一样。NULL是指针类型,不过它是空指针,即值为0。...实际上NULL通常是如下定义: #define NULL (void*)0 所以,如果要给一个指针类型初始化,那么你给它一个NULL,使得能够明显看到这是一个指正。...当然,在C++中,你更应该使用nullptr,而不是NULL。 '\0' 我们都知道\是转义符,用单引号包起来,再加转义,实际上就是0,只不过它表示是字符。...是的,它们都以遇到'\0'结束。 注意,它和'0'完全不一样。通过打印就可以看到了,实际上'\0'值就是0。 需要特别注意是,如果'\0'0后面跟八进制数,则会被转义。

1.6K20
您找到你想要的搜索结果了吗?
是的
没有找到

【代码规范】详解nullptr、NULL0

【代码规范】详解nullptr、NULL0 最近一直搞不清楚 nullptr, NULL, '\0'这三者真正区别,因为有的时候会发现,混用这三种用法,编译器也不会报错,在这里对相关一些定义和使用方式进行整理...其实本质上nullNULL都是符号,只是在不同编译器上NULL被宏定义指定内容,null没有定义而已。 例如在vs环境中,NULL被指定为0,代码如下。 ?...NULL0 其实NULL0关系在上面已经讲差不多了,因为C++中不能将void *类型指针隐式转换成其他指针类型,而又为了解决空指针问题,所以C++中引入0来表示空指针,在一些编译器上又会用...标准允许将 NULL 定义成 (void*)0,所以在 NULL 被定义成 (void*)时候,如果使用 NULL 来结束字符串,编译器必然会提示警告存在可能性空指针区域并未清0,引发未知错误。...所以在C++中NULL不可以用于字符串末尾,支持0和'\0'作为字符串结尾。

1.4K20

mysql从5.7迁移表结构到5.5报错 near ‘(0) NULL DEFAULT NULL

the manual that corresponds to your MySQL server version for the right syntax to use near '(0) NULL...DEFAULT NULL' 报错那一行内容为 `refund_success_time` datetime(0) NULL DEFAULT NULL COMMENT '退款成功时间', 宣言博客 Siam...那么sql语句一般是正常没问题, 一般是环境差异导致,如(版本不同) 原来表创建过程是使用软件可视化,datetime长度这里没有填写,默认是为0,所以首先是对这个不理解 从这里去找了资料,发现对...datetime长度说明资料很少,但还是有一个百度回答说到了(虽然不够准确) 原文为: 在navicat里面datetime长度好像指的是秒后面的小数点位数,可以设置为0-6位 不准确地方有以下...(最好精确到小版本) 如果只是为了临时在mysql5.5完成测试,并且确认业务程序不需要使用到时间小数秒,可以将sql文件中长度设置删除,然后导入 datetime(0) NULL DEFAULT

2.7K30

-JS中级测试 单选 typeof null结果是什么?

考核内容:javascript数据类型及运算操作 题发散度: ★★ 试题难度: ★ 解题思路: null 在 JavaScript 中 null 表示 "什么都没有"。...null是一个只有一个值特殊类型。表示一个空对象引用。 用 typeof 检测 null 返回是object。...undefined 在 JavaScript 中, undefined 是一个没有设置值变量。 typeof 一个没有值变量会返回 undefined。...undefined 和 null 区别 null 和 undefined 值相等,但类型不等: 1、定义 (1)undefined:是所有没有赋值变量默认值,自动赋值。...(2)null:主动释放一个变量引用对象,表示一个变量不再指向任何对象地址。 2、何时使用null当使用完一个比较大对象时,需要对其进行释放内存时,设置为 null

2K20

JS 语法糖 0 ——解构

JS 获取对象属性和访问数组内容是都是很常用操作,从 ECMAScript 6 开始,允许按照一定模式从数组和对象中提取值对变量进行赋值,这被称为解构(Destructuring)。...在这篇文章中,你将会看到 JS 解构常见用法和技巧。 1.数组解构 1.1 简介 以前访问数组元素使用下标。...let [x = 1] = [undefined]; // x = 1 let [x = 1] = [null]; // x = null 上面代码中,如果一个数组成员是 null,默认值就不会生效,...var {x = 3} = {x: undefined}; x // 3 var {x = 3} = {x: null}; x // null 上面代码中,属性 x 等于 null,因为 null 与..., 0] move({}); // [0, 0] move(); // [0, 0] 上面代码中,函数 move 参数是一个对象,通过对这个对象进行解构,得到变量 x 和 y 值。

6.9K30

简单探索 js 中 something >> 0 原理

里面的实现是怎样,结果发现这么一行: // truncate if number or convert non-number to 0 target = target >> 0; 我倒不是对这个代码本身作用有什么疑问...,毕竟之前看过好多关于 js 技巧文章,其中都介绍过这种写法,并且自己也在实际工作中运用过多次。...0 console.log(target) // 0 根据 GetValue 逻辑可以发现,走到第二步就返回该值了,因为它是一个基础数据类型,所以 lval 值为 ‘a’。...之后带入之前右移操作规范 10 和 11 步就会得知,’a’ >> 0 等价于 +0 >> 0,最终结果是 +0。...但是当我们遇到一些自己不懂或者不熟悉东西时,一定要有意识去寻根问底,这样积少成多,精通 js 早晚会变成现实。

1.1K30
领券