當前位置:首頁 » 編程語言 » c語言判斷指針為空if語句
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言判斷指針為空if語句

發布時間: 2022-11-26 22:03:42

c語言中,(p為一個指針),語句if(!p)是什麼意思能給一個簡單例子嗎

!p意思就是 非p,
如果p的值為0,!p判定為真;
如果p的值不是0,!p的判定為假
現在一個指針,指針有內容,即:p的值不是0,!p的判定為假
如果指針沒有內容,NULL,即:p的值為0,!p判定為真;

Ⅱ C語言 請問怎麼判斷一個指針是否是空的

不知道變數a是什麼作用。我想可以增加可以增加一個變數length,表示當前數組的長度。比如下面這樣。length的初值賦值為0。

structstru
{
charn[30];
inta;
};
intlength;

這樣你每次插入一個新的元素的時候,就「當前數組的長度加一」。當然默認你的插入元素是從下標'0'開始的,並且是連續的。這樣想找到一個空的位置進行插入時,就可以使用

p[length].n=...;
p[length].a=...;
length++;

這只是我個人的想法,希望對你有所幫助。

Ⅲ c語言中的if和指針

fun(char *a){ if(*a) // 判斷a是否指向』\0』,即是否到了字元串末尾。 { fun(a+1); printf("%c",*a); }}/*fun是一個自定義函數,默認返回類型為int,形參為一個字元串,a指向其首地址。函數採用遞歸調用的方式實現將字元串逆序輸出。*/</p>

Ⅳ if(NULL != p)和if( p!=NULL )在C語言中有什麼區別 具體是什麼意思!

if(NULL != p)和f(p != NULL)兩者並沒什麼區別,都是判斷指針p是否為空。

但是當考慮到出錯檢查時,if(NULL != p)寫法更好,因為如果誤寫為if(NULL = p)的時候,編譯器就會提示出錯(因為常量不能被賦值);而if(p != NULL)如果誤寫為if(p = NULL),則編譯器不會報錯。

Ⅳ 在C語言中if(null)成立嗎

NULL 在 C 語言中為一個宏,定義為:
#define NULL 0
所以 if( null ) 即為 if( 0 )

if( p ) 和 if( 0 ) 是完全不一樣的:
if( p ) 是判斷 p 是否為空,即 p 是否為NULL
if( 0 ) 返回的結果一定是 false

Ⅵ C語言 if用法

if(!l->next)
l是一指針,(!l->next)相當於
(!(l->next))l所指向的next的值如果是非零(感嘆號表示非運算)或者非NULL,那整個表達是就是假,if後面的條件語句就不執行,否則執行
if(sel==1)就是簡單的判斷sel等不等於1,
等於1,if後面的條件語句執行,否則,不執行

Ⅶ 關於C語言的if語句

第一步:0x02000000看成一個很大的整數。
第二步:接著(int
*)0x02000000
則變成了一個指向存儲著整型數的地址空間的指針,該地址空間的首地址是0x02000000

第三步:*(int
*)0x02000000
則是取第二步說的地址空間中的數據,該數是一個整數(具體不知道)。
第四步:(char
*)*(int
*)0x02000000
則是把第三步得出的整數用(char
*)強制類型轉換成一個指向存儲著char類型字元的地址空間的指針,該空間的首地址是第三步取得的整數。
到第四步的時候,當前的該指針指向的初始首地址是第三步取得的整數,
然後
經過((char
*)*(int
*)0x02000000)
=
(char
*)malloc(20)
;之後,
該指針重新被分配指向char類型的大小為20位元組的空間,之後該指針指向該新空間的首地址。

Ⅷ C語言怎麼判斷一個文件為空

我這里有一種方法,不知能滿足樓主的要求不?
FILE *pfile;
int filepos = 0;
pfile = fopen("test.txt", "r");
fseek(pfile, 0, SEEK_END);
filepos = ftell(pfile);
if(0 == pos)
{
puts("The file is null!");
}
else
{
puts("The file has some content!");
}

Ⅸ 如何判斷一個字元串指針是否為空(C語言)

#include<stdio.h>
#include<stdlib.h>
void main()
{
char *str = (char*)malloc(sizeof(char)*10); //分配地址空間
gets(str); //輸入
if(str[0]!='') //由於字元串以''結尾,故可以這樣來判斷
{
printf("非空! ");
}
else
printf("空 ");
}

望採納...

Ⅹ 用C語言怎麼判斷一個字元串是否為空

if (i < len) // 字元串不空 else // 空字元串 scanf ("%s", str); // 這里改下就行了! int len = strlen(str), i = 0; if (len > 0){while(i < len && str[i++] == ' '); if (i < len) // 字元串不空 else // 空字元串 #include <stdio.h> #include <string.h> void main(){char *str;scanf ("%s", str); int len = strlen(str), i = 0; if (len > 0){while(i < len && str[i++] == ' '); if (i < len) printf ("%s\n", str); else printf ("字元串為空\n");}else printf ("字元串為空\n"); } 追問: 不對啊,你試下編譯一下?按空格不會判斷的,有輸進去字元時也有點小問題。總之,你這個程序編譯時通過,但是沒有能實現效果。要不你試下。我將你剛剛的程序段完善了一下,跟你這個差不多,但效果實現不了。所以,高手。點解呢? 回答: 現在手頭沒vc6,我想辦法調試下,==啊。 補充: 對了,忘記了,用scanf是不讀取空格的,scanf會將空格識別為結束號,要用gets(str); #include "stdio.h" #include "string.h" void main(){char str[100]; // 很久沒用指針,直接上面那樣有錯,暫時先改數組了。 int len, i = 0; gets (str); len = strlen(str); if (len > 0){while(i < len && str[i++] == ' '); else printf ("字元串為空\n");}else printf ("字元串為空\n");