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

 更新时间:2013年07月11日 10:11:35   作者:  
声明了int ,long型等局部变量,在利用一些方法给这些变量赋值之后,想判断这些变量是不是真的被赋初值了,怎么办

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

复制代码 代码如下:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
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 <stdio.h>
#include <string.h>
#include <stdlib.h>
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;
}

运行截图如下所示:



由此,解决了问题。

相关文章

  • C++ OpenCV技术实战之身份证离线识别

    C++ OpenCV技术实战之身份证离线识别

    OpenCV身份证离线识别技术的主要技术就是通过OpenCV找到身份证号码区域,然后通过OCR进行数字识别该区域的截图即可得到身份证号码。感兴趣的可以了解一下
    2021-12-12
  • 老生常谈C语言动态函数库的制作和使用(推荐)

    老生常谈C语言动态函数库的制作和使用(推荐)

    下面小编就为大家带来一篇老生常谈C语言动态函数库的制作和使用(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • 一波二叉树遍历问题的C++解答实例分享

    一波二叉树遍历问题的C++解答实例分享

    这篇文章主要介绍了一波二叉树遍历问题的C++解答实例分享,包括节点打印和转换为镜像等问题的解答,需要的朋友可以参考下
    2016-02-02
  • C++简单实现的全排列算法示例

    C++简单实现的全排列算法示例

    这篇文章主要介绍了C++简单实现的全排列算法,结合实例形式分析了C++排序操作的实现技巧,需要的朋友可以参考下
    2017-07-07
  • C++设计模式之原型模式

    C++设计模式之原型模式

    这篇文章主要介绍了C++设计模式之原型模式,本文讲解了什么是原型模式、为什么要使用原型模式、代码实例等内容,需要的朋友可以参考下
    2014-09-09
  • C语言栈的表示与实现实例详解

    C语言栈的表示与实现实例详解

    这篇文章主要介绍了C语言栈的表示与实现,对于数据结构与算法的研究有一定的借鉴价值,需要的朋友可以参考下
    2014-07-07
  • C++中4种类型转换的方法分享

    C++中4种类型转换的方法分享

    这篇文章主要为大家详细介绍了C++中4种类型转换的方法,文中的示例代码讲解详细,对我们学习C++有一定的帮助,感兴趣的可以了解一下
    2023-04-04
  • vscode实现本地代码自动同步到远程机器的步骤

    vscode实现本地代码自动同步到远程机器的步骤

    这篇文章主要介绍了vscode实现本地代码自动同步到远程机器的步骤,本文分步骤给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06
  • C++对象的浅复制和深复制详解及简单实例

    C++对象的浅复制和深复制详解及简单实例

    这篇文章主要介绍了C++对象的浅复制和深复制详解及简单实例的相关资料,需要的朋友可以参考下
    2017-04-04
  • windows消息和消息队列实例详解

    windows消息和消息队列实例详解

    这篇文章主要介绍了windows消息和消息队列实例详解,详细讲述了Windows的消息机制与原理,对于深入理解和学习Windows应用程序设计有不错的借鉴价值,需要的朋友可以参考下
    2014-10-10

最新评论