Ⅰ 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]!='