博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言中判断int,long型等变量是否赋值的方法
阅读量:6799 次
发布时间:2019-06-26

本文共 1811 字,大约阅读时间需要 6 分钟。

博主这段时间在写一些C程序的代码,由于以前对C不是了解很多,故遇到很多瓶颈,当然,其中也有很多有趣的方法可以利用以解决这些难题,下面这个问题就是博主遇到的一个麻烦。

声明了 int ,long 型等局部变量,在利用一些方法给这些变量赋值之后,想判断这些变量是不是真的被赋初值了,怎么办?

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

下面我们看一段代码:

 

#include 
#include
#include
int globle_value;int my_sum(int value1, int value2);long my_sub(long value1, long value2);int main(void){ int auto_value_int; long auto_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"); return 0;}int my_sum(int value1, int value2){ return value1 + value2;}long my_sub(long value1, long value2){ return value2 - value1;}

说明:

 

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

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

下面是经过修改了的代码:

 

#include 
#include
#include
int globle_value;int my_sum(int value1, int value2);long my_sub(long value1, long value2);int main(void){ int auto_value_int; long auto_value_long; char temp[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"); return 0;}int my_sum(int value1, int value2){ return value1 + value2;}long my_sub(long value1, long value2){ return value2 - value1;}

运行截图如下所示:

 

由此,解决了问题。

 

你可能感兴趣的文章
CentOS安装crontab及使用方法(转)
查看>>
一个屌丝程序猿的人生(一)
查看>>
Nginx 启动脚本/重启脚本
查看>>
Java_java动态编译整个项目,解决jar包找不到问题
查看>>
MapReduce编程示例
查看>>
【spring】 <tx:annotation-driven /> 的理解 【转载的】
查看>>
PHP 获取图像信息 getimagesize 函数
查看>>
SSM框架整合( Spring 、 SpringMVC 和 Mybatis )
查看>>
查看linux系统常用的命令,Linux查看系统配置常用命令
查看>>
linux下安装7z命令及7z命令的使用
查看>>
检测设备朝向和移动
查看>>
iOS开发网络篇—监测网络状态
查看>>
vs------密钥
查看>>
Cygwin安装时,选择163的源后出错:Unable to get setup.ini from <http://mirrors.163.com/cygwin/>...
查看>>
C# Excel数据有效性
查看>>
java 调用微信截图工具
查看>>
【Hadoop】伪分布式环境搭建、验证
查看>>
李洪强经典面试案例33-如何面试 iOS 工程师
查看>>
[LeetCode] Sum of Left Leaves 左子叶之和
查看>>
【温故而知新-Javascript】使用 Window 对象
查看>>