當前位置:首頁 » 編程語言 » 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內的隨機數。