当前位置:首页 » 编程语言 » c语言怎么让指针指向空指针
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言怎么让指针指向空指针

发布时间: 2022-10-18 18:46:22

c语言:在fun()函数中已经定义了指针s,要怎么表示他是空指针

这是赋值,前一句是把指针指向0,也就是变成空指针,后一句是给指针指向的变量赋值
前一句不会在fun之外产生影响,后一句会改变原变量的值

㈡ c语言空指针的表示方法

个人理解,在c语言中空指针是指向null的指针,而在c++中则是指向地址为0的指针,虽然在实际应用中,基本一致,但是还是有点差别。另外,空指针本身是有地址的。在c++中是一样的,在c中就变成了null==null的问题了,这就是仁者见仁智者见智的问题。

㈢ c语言 关于空指针问题

1.
if(y
==
NULL
&&
w
==
NULL
&&
d
==
NULL)这个语法上是对的,但是逻辑上不对,应该任何变量为空指针都不能执行,所以改为if(y
==
NULL
||
w
==
NULL
||
d
==
NULL)
2.
if...else...
的用法问题,else后并不是一定要再加if的。而且if后面一定要有条件。
3.
循环只要是收敛的就可以用,但是要记得初始化
a=a初值;
b=b初值;
epsilon
=较小值;
for(c
=
abs(a-b);
c<epsilon
;
c
=
abs(a-b);){
a
=
(a+b)/2;
b
=
sqrt(a*b);
}
4.
要修改y,w,d所指向的值,所以要用指针。否则直接用int
y,w,d的话只能修改函数内部变量,不能带出函数。(形参和实参的概念)
程序修改如下:
int
convertTime(int
days,
int
*y,
int
*w,
int
*d){
if(days
<
0){
return
1;
}
else
if(y
==
NULL
||
w
==
NULL
||
d
==
NULL){//去掉多余的if,并修改&&为||
return
1;
}
else{//去掉多余的if
int
a
=
days%365;
*y
=
days
/
365;
//可以直接这么写,由于分子分母都是整数,所以这里的除号是做整除
*w
=
a
/
7;
*d
=
a
%
7;
return
0;
}
}

㈣ C++中如何定义空指针

在C++11(C++0x)里,空指针有了一个官方版的表示:nullptr。

一种方法是定义一个NULL宏(#defineNULL0)来表示空指针,虽然本质上和直接写成0一样,但NULL能相对直观地表示这是个指针。

一些知名头文件里就带有NULL的定义,比如windows.h和stdio.h。直接用NULL似乎是个不错的主意。

有时候源文件中并不需要引用到这些知名头文件,那么NULL就要由自己来定义。

另外,NULL可以由自己定义,这意味着NULL完全有可能被定义成其他东西(少见)。因为NULL并非标准,所以有人可能自己定义了Null或null或其他东西(少见),这会带来混乱。

那么直接用0来表示空指针好了。用0表示写起来简单,而且0就是0,不会有其他定义,只是不那么直观。

(4)c语言怎么让指针指向空指针扩展阅读:

当通过指针来访问指针所指向的内存区时,指针所指向的类型决定了编译器将把那片内存区里的内容当做什么来看待。从语法上看,只须把指针声明语句中的指针名字和名字左边的指针声明符*去掉,剩下的就是指针所指向的类型。例如:

int*ptr;//指针所指向的类型是int

char*ptr;//指针所指向的的类型是char

int**ptr;//指针所指向的的类型是int*

int(*ptr)[3];//指针所指向的的类型是int()[3]

int*(*ptr)[4];//指针所指向的的类型是int*()[4]

㈤ C语言中,空指针的使用意义是什么在编程中使用空指针会带来什么影响

  • 语言定义中说明,每一种指针类型都有一个特殊值——“空指针”——它与同类型的其它所有指针值都不相同,它“与任何对象或函数的指针值都不相等”;

  • 不要返回指向栈内存的指针或引用,因为栈内存在函数结束时会被释放。

  • 指针是个很强大的工具,可是正因为它太强大,所以要操作它不是件易事。操作不当造成的野指针,甚至会引起系统死机等比较严重的后果。

    如果程序定义了一个指针,就必须要立即让它指向一个我们设定的空间或者把它设为NULL,如果没有这么做,那么这个指针里的内容是不可预知的,即不知道它指向内存中的哪个空间(即野指针),它有可能指向的是一个空白的内存区域,可能指向的是已经受保护的区域,甚至可能指向系统的关键内存,如果是那样就糟了,也许我们后面不小心对指针进行操作就有可能让系统出现紊乱,死机了

㈥ 求问C语言可不可以让指针指向另一个指针

可以。声明一个指向指针的指针:int a=8,*p=8,**q=p;,q就是一个指向指针p的指针。

㈦ c语言空指针的表示方法

在C语言空指针用NULL表示,NULL宏是定义在标准库头文件stddef.h中。宏定义如下:

#undefNULL
#ifdefined(__cplusplus)
#defineNULL0
#else
#defineNULL((void*)0)
#endif

可以看出c++中 NULL为(int)0 , C中NULL为(void*)0。看来C和C++中NULL宏的值略有不同。

㈧ c语言如何给指针参数赋值为null

用指针的引用即可.
例如:
int
memnull(int
*¶m)
{
param
=
NULL;
return
0;
}
在另一个函数里调用它:
int
*a;
memnull(a);
memnull运行完之后a的地址就被修改为NULL了.
或者可以用指针的指针:
int
memalloc(int
**param)
{
*param
=
NULL;
return
0;
}
调用的时候这样调用:
int
*a;
memnull(&a);
这样memnull函数运行完后a的地址也会被修改为NULL.
同理其他操作,申请空间,改变指向等,也可以用指针的引用和指针的指针这两种方法完成.不过还是推荐指针的引用,在写代码时不容易写错.

㈨ C语言 空指针

int *p;p=&a空指针也分配了空间它里面是随机的码,我认为int *p和int*p=null是一样的。p=n就是p和n都指向了一个n内的随机数。