zl程序教程

您现在的位置是:首页 >  后端

当前栏目

C语言中判断int,long型等变量是否赋值的方法详解

C语言方法变量 详解 判断 是否 赋值 int
2023-06-13 09:15:03 时间

当然,如果你不赋值给局部变量,这样会导致整个程序的崩溃,因为,它的内容被系统指向了垃圾内存。
下面我们看一段代码:

复制代码代码如下:

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
intgloble_value;
intmy_sum(intvalue1,intvalue2);
longmy_sub(longvalue1,longvalue2);
intmain(void)
{
 intauto_value_int;
 longauto_value_long;
 auto_value_int=my_sum(15,9);
 auto_value_long=my_sub(12587,22587);
 printf("globle_value:%d\n",globle_value);
 printf("auto_value_int:%d\n",auto_value_int);
 printf("auto_value_long:%ld\n",auto_value_long);
 system("PAUSE");
 return0;
}
intmy_sum(intvalue1,intvalue2)
{
 returnvalue1+value2;
}
longmy_sub(longvalue1,longvalue2)
{
 returnvalue2-value1;
}

说明:
我首先定义了一个全局变量,当然,这会由系统自动初始化为0,但是两个不同类型的局部变量并没有初始化,而是通过两个函数调用赋的值。可是,现在,想一个问题,两个函数调用是不是执行成功了呢?如果不成功,还是没有达到我所想要的效果,这怎么去判断呢?

开始,博主也是没想到好的解决办法,也查阅别人怎么去做,没有太多的收获,可是,博主想到了C语言中的一个函数--sprintf,它可以把不同类型变量存放到字符数组中,我们之后可以判断,字符数组是否为空就可以了。
下面是经过修改了的代码:
复制代码代码如下:

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
intgloble_value;
intmy_sum(intvalue1,intvalue2);
longmy_sub(longvalue1,longvalue2);
intmain(void)
{
 intauto_value_int;
 longauto_value_long;
 chartemp[20]={0};
 auto_value_int=my_sum(15,9);
 auto_value_long=my_sub(12587,22587);
 printf("globle_value:%d\n",globle_value);
 sprintf(temp,"%d",auto_value_int);
 if(strcmp(temp,"")!=0)
 {
  printf("auto_value_int:%d\n",auto_value_int);
 }

 sprintf(temp,"%ld",auto_value_long);
 if(strcmp(temp,"")!=0)
 {
  printf("auto_value_long:%ld\n",auto_value_long);
 }

 system("PAUSE");
 return0;
}
intmy_sum(intvalue1,intvalue2)
{
 returnvalue1+value2;
}
longmy_sub(longvalue1,longvalue2)
{
 returnvalue2-value1;
}

运行截图如下所示:



由此,解决了问题。