在C++11(C++0x)里,空指针有了一个官方版的表示:nullptr。
一种方法是定义一个NULL宏(#defineNULL0)来表示空指针,虽然本质上和直接写成0一样,但NULL能相对直观地表示这是个指针。
一些知名头文件里就带有NULL的定义,比如windowsh和stdioh。直接用NULL似乎是个不错的主意。
有时候源文件中并不需要引用到这些知名头文件,那么NULL就要由自己来定义。
另外,NULL可以由自己定义,这意味着NULL完全有可能被定义成其他东西(少见)。因为NULL并非标准,所以有人可能自己定义了Null或null或其他东西(少见),这会带来混乱。
那么直接用0来表示空指针好了。用0表示写起来简单,而且0就是0,不会有其他定义,只是不那么直观。
扩展资料:
当通过指针来访问指针所指向的内存区时,指针所指向的类型决定了编译器将把那片内存区里的内容当做什么来看待。从语法上看,只须把指针声明语句中的指针名字和名字左边的指针声明符去掉,剩下的就是指针所指向的类型。例如:
intptr;//指针所指向的类型是int
charptr;//指针所指向的的类型是char
intptr;//指针所指向的的类型是int
int(ptr)[3];//指针所指向的的类型是int()[3]
int(ptr)[4];//指针所指向的的类型是int()[4]
参考资料来源:百度百科-C++
参考资料来源:百度百科-指针
CREATE OR REPLACE VIEW 视图名称 ASSELECT
其他字段,
nvl(order_no, group_no)
FROM
表名
WHERE 条件';Null 是没有的意思 不占用内存空间
""是空的字符串 它是一个字符串,不过里面没有内容
在数据是未知数或者无法使用时,大多数的数据库管理系统将存储一个叫做Null值的特殊值。不要将它和零(一个合法数值)、零长度串(不含有字符的一种串数据类型)或空格字符混淆起来。SQL-3标准中把一个Null定义为:
“一个用来指明任何数据值都不存在的一个特殊值”
SQLServer中有一个空值调用函数:
ISNULL 功能:使用指定的替换值替换 NULL。
语法
ISNULL ( check_expression , replacement_value )
参数
check_expression
将被检查是否为 NULL的表达式。check_expression 可以是任何类型的。
replacement_value
在 check_expression 为 NULL时将返回的表达式。replacement_value 必须与 check_expresssion 具有相同的类型。
返回类型
返回与 check_expression 相同的类型。
注释
如果 check_expression 不为 NULL,那么返回该表达式的值;否则返回 replacement_value。
一个例子:
使用 ISNULL
下面的示例为 titles 表中的所有书选择书名、类型及价格。如果一个书名的价格是 NULL,那么在结果集中显示的价格为 000。
SELECT SUBSTRING(title, 1, 15) AS Title, type AS Type,
ISNULL(price, 000) AS Price
FROM titlesNULL在头文件的定义是0
指的是ASCII字符集中的第一个字符,标志“空”的一个状态字。
while(pf)
while(pf!=0)
判断指针为空(假)做为终止循环的条件。
指针这种用法一般是在调用函数中,会传递一个指针,然后返回已指向目标的指针,用户通过该指针就可以 *** 纵所需功能了。如果调函数失败,返回的就是空指针。
null和空字符的区别:
1、NULL:代表声明了一个空对象,不是一个字符串,可以赋给任何对象。
空字符:代表声明了一个对象实例,这个对象实例的值是一个长度为0的空字符串。
2、String s=null; 只是定义了一个句柄,即你有了个引用,但是这个引用未指向任何内存空间。
String s=”“; 这个引用已经指向了一块是空字符串的内存空间,是一个实际的东东了,所以可以对它 *** 作。
String s=”a”和String s=new String(“a”);是有本质上的区别的 :
(1) 前者是在字符串池里写入一个字符’a’,然后用s指向它; 后者是在堆上创建一个内容为”a”的字符串对象。
(2) String str=”aaa”; //于栈上分配内存 ;String str=new String(“aaa”); //于堆上分配内存
请添加详细解释
#define NULL 0定义一个空指针:int p=0;或int p=NULL;
如果一个指针变量的值为NULL表示这个指针是一个空指针它指向的是地址为0的内存,实际上地址为0的内存不允许存放任何形式的数据,所以一个指针变量的值为空没有什么实际的意义,主要是用来表示判断
例如:
if(p!=Null)
if(p==NULL)
'\0'主要用来表示一个字符串的结束.
在正常情况下都是同编译自动加上去的.
见笑了,就知道这些了!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)