1. int *p = NULL; 代表定义一个指向整型变量的指针p,然后p的值设为NULL,也就是设为0;用另一种方式说,就是对一个刚定义的指向整型变量的指针,赋初始值,让其指向0地址。 2. *p = NULL; 代表对一个由指针p指向的变量(什么类型,不知道),赋值为0,是将那个变量赋值为0。 我们可以先看下面的代码: 1 i...
从指针角度理解NULL的本质: (1)int *p; p是一个函数内的局部变量,则p的值是随机的,也就是说p是一个野指针。 (2)int *p = NULL; p是一个局部变量,分配在栈上的地址是由编译器决定的,我们不必关心,但是p的值是(void *)0,实际就是0,意思是指针p指向内存的0地址处。这时候p就不...
#include <stddef.h>voidfoo(int) {}//#1voidfoo(char*) {}//#2intmain() { foo(NULL);//调用#1还是#2?} 从字面上来讲,NULL是个空指针常量,我们可能会觉得:既然是个指针,那么应该调用#2。但事实上调用的却是#1,因为C++中NULL扩展为常数0,它是int型。 根本原因就是:常数0既是整数常量,也是空指针...
NULL的值为0 int a=0; char s[]={0}; pk246 | 发布于2008-08-18 举报| 评论 0 1 空值这个概念实际上只是针对指针而言的。整型数据和字符的空值实际上就是一个默认值。整型数据的默认值是0,字符型数据的默认值是‘\0’ guojingcha | 发布于2008-08-18 举报| 评论 1 0 int a=nullchar ...
不能显示的字符: 空(null)字符(以'\0'表示)、警告(以'\a'表示)、退格(以'\b'表示)、回车(以'\r'表示)等 第二种:字符变量 字符变量是用类型符char定义字符变量。 例如:char c=‘A’ 定义了一个char字符变量c,并将A这个字符赋给c。字符本身也是个整数,所以输出的形式可以是int整形和字符型c两种。
朴素的0值或者无类型的0值(void 0)计算机语言中为了确定数据宽度(占用字节数)以及数据编码,一般都是有类型定义的,比如C语言中bool为8位逻辑值(单字节),int 为16位整数(双字节),long 为32位整数(4字节),float是32位浮点数(4字节),double为64位浮点数(8字节),等等。因此,数据...
PS:1.C语言标准是这样规定的:int最少16位(2字节),long不能比int短,short不能比int长,具体位长由编译器开发商根据各种情况自己决定。 2.32位平台下long 是4个字节,long long 是8字节;但是64位平台下则全是8字节。因此为了保证平台的通用性,程序中尽量不要使用long数据类型。
NULL用于表示空,(#define NULL 0)一般用来定义一个空指针; int *p=NULL; 1 4、switch语句中的break network_code { switch(line) { case 1: doit1; break; case 2: if(x==STUFF) { if(y==OTHER_STUFF) { break; } do_late_stuff;
int *p=NULL; printf("%s",p); } 1. 2. 3. 4. 5. 6. 输出<null> ,单步调试可以看出执行int *p=NULL,p的值为0x00000000,可以看出,NULL在实际底层调用中就是0, 在C语言中, NULL和0的值都是一样的,但是为了目的和用途及容易识别的原因,NULL用于指针和对象,0用于数值 ...
C语言中int *p=NULL意思是:C语言中p里面是随机值,在int *p=NULL,这个p是有值的,为NULL;int *p=NULL指向一个空指针,等于 int *p=0; NULL等于0;可以随时让这个p指向其他地址。定义指针,将它初始化为NULL,这样做编程更规范。