C语言中判断int,long型等变量是否赋值的方法
博主这段时间在写一些C程序的代码,由于以前对C不是了解很多,故遇到很多瓶颈,当然,其中也有很多有趣的方法可以利用以解决这些难题,下面这个问题就是博主遇到的一个麻烦。
声明了 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语言中判断int,long型等变量是否赋值的方法的更多相关文章
- 为什么阿里巴巴Java开发手册中强制要求整型包装类对象值用 equals 方法比较?
在阅读<阿里巴巴Java开发手册>时,发现有一条关于整型包装类对象之间值比较的规约,具体内容如下: 这条建议非常值得大家关注, 而且该问题在 Java 面试中十分常见. 还需要思考以下几个 ...
- C语言中字符型和字符串型的区别?
C语言中只有字符型类型,没有字符串型类型.字符类型用一个带符号的8位二进制编码表示,其性质与int相同,只是只有一个字节.表示字符的ASCII编码使用其中的0~127,所以要明白字符类型(char)其 ...
- Sql Server中判断表、列不存在则创建的方法[转]
一.Sql Server中如何判断表中某列是否存在 首先跟大家分享Sql Server中判断表中某列是否存在的两个方法,方法示例如下: 比如说要判断表A中的字段C是否存在两个方法: 第一种方法 ? ...
- c语言中不允许在函数外部给全局变量赋值
今天,在写条件编译的时候,出现了在函数外部给全局变量赋值的情况,gcc报错,那么c语言为什么不允许在函数外部给变量赋值呢?为什么声明变量的时候可以对变量进行赋值? 出错代码: /* 2 * ===== ...
- JavaScript中判断对象是否属于Array类型的4种方法及其背后的原理与局限性
前言 毫无疑问,Array.isArray是现如今JavaScript中判断对象是否属于Array类型的首选,但是我认为了解本文其余的方法及其背后的原理与局限性也是很有必要的,因为在JavaScrip ...
- C语言入门(4)——常量、变量与赋值
对于基本数据类型量,按其取值是否可改变又分为常量和变量两种.在程序执行过程中,其值不发生改变的量称为常量,其值可变的量称为变量.它们可与数据类型结合起来分类. 常量 常量有字符常量(Character ...
- java中 ++前后差别试题及静态变量一旦赋值不可改变
package javaTest; public class Increment { private static int k=0; public static void main(String[] ...
- R语言中判断是否是整数。以及读写excel
今天接手一个重复性工作, 需要手工把产品运营们在excel里写的活动规则, 插入数据库表中.为了减少出错, 提高效率. 再加上最近刚刚学R语言, 就用R练练手, 自动生成mysql的sql语句. 一次 ...
- 算法改进 | java语言中判断素数
参考文章:http://blog.csdn.net/kp_liu/article/details/37569507 http://blog.csdn.net/huang_miao_xin/articl ...
随机推荐
- C语言宏的高级应用
原文:C语言宏的高级应用 关于#和##在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号.比如 ...
- Android利用CountDownTimer类实现倒计时功能
public class MainActivity extends Activity { private MyCount mc; private TextView tv; @Override publ ...
- 安卓MonkeyRunner源码分析之工作原理架构图及系列集合
花了点时间整理了下MonkeyRunner的工作原理图,请配合本人博客里面MonkeyRunner其他源码分析文章进行阅读.下面整理成相应系列列表方便大家阅读: MonkeyRunner源码分析之-谁 ...
- Scala Sublime text 3 Build 编译
使用Sublime text 3编译Scala 在sublime工具栏中[tools]->[Build System]->[new Build System]添加如下文本 { " ...
- Qlik Sense Desktop
2014年新一代的报表利器 Qlik Sense Desktop 初步体验 2014-09-22 12:45 by BIWORK, 974 阅读, 7 评论, 收藏, 编辑 Qlik Sense De ...
- wpa_cli P2P 连接相关的调试命令
在最近的一次客户端上的调试p2p的wifi display, 他们中的一半Android该调整了,整个前所以没有太多的研究p2p过程连接, 客户现在使用的非Android平台架构. 需要协助客户这么多 ...
- Android项目---listview的那些属性,常用却不常见
一.在xml中,常用到的属性有 android:cacheColorHint="#00000000" //设置拖动背景色为透明 android:dividerHeight=&quo ...
- Object.prototype.propertyIsEnumerable
语法: obj.propertyIsEnumerable(prop); 此方法返回一个布尔值,表明指定的属性名是否是当前对象可枚举的自身属性. 1.如果是用户自定义了对象的属性,将返回true,比如 ...
- java入门学习(十二)运算语句 if switch
这两天在网上做兼职,耽误了些博客见谅哈 欢迎来我的博客:www.taomaipin.com java中的运算语句而且频繁用到的无法就是条件语句和循环语句,包括if,for,while,switch,b ...
- java反射拼接方法名动态执行方法
近期由于负责项目的一个模块,该模块下有很多分类,每个分类都有一个编码code,这个值是作为一个参数携带过来的.但是每个code确实对应一个方法的. code的值有很多个,自己又不想做ifelse或者s ...