当前位置:首页 » 编程语言 » 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");