C语言中变量未初始化的处理
实例测试1--DEV-C++环境 :
#include <stdio.h>
//全局整形变量
int int_var1;
static int stc_int_var1;
short int sht_int_var1;
long int log_int_var1;
//全局指针变量
char *int_opt1;int main()
{//局部整形变量 int int_var2;static int stc_int_var2;short int sht_int_var2;long int log_int_var2;//局部指针变量char *int_opt2;//局部指针变量不初始化打印不出来 printf("int_var1=%d,stc_int_var1=%d,sht_int_var1=%hd,log_int_var1=%ld,int_opt1=%s\n", int_var1, stc_int_var1, sht_int_var1, log_int_var1, int_opt1);//全局变量 printf("int_var2=%d,stc_int_var2=%d,sht_int_var2=%hd,log_int_var2=%ld,int_opt2=%s\n", int_var2, stc_int_var2, sht_int_var2, log_int_var2, int_opt2);//局部变量 return 0;
}
修改:将局部字符指针初始化 char *int_opt2 = NULL;
总结1:
Dev-C++环境下,全局未初始化变量均设置为默认值(int类型默认值0;字符指针默认null)
局部未初始化变量,整形设置默认值0;指针未初始化变量不打印不报错!
实例测试2--GCC环境
#include <stdio.h>
//全局整形变量
int int_var1;
static int stc_int_var1;
short int sht_int_var1;
long int log_int_var1;
//全局指针变量
char *int_opt1;int main()
{//局部整形变量 int int_var2;static int stc_int_var2;short int sht_int_var2;long int log_int_var2;//局部指针变量char *int_opt2;printf("int_var1=%d,stc_int_var1=%d,sht_int_var1=%hd,log_int_var1=%ld,int_opt1=%s\n", int_var1, stc_int_var1, sht_int_var1, log_int_var1, int_opt1);//全局变量 printf("int_var2=%d,stc_int_var2=%d,sht_int_var2=%hd,log_int_var2=%ld,int_opt2=%s\n", int_var2, stc_int_var2, sht_int_var2, log_int_var2, int_opt2);//局部变量 return 0;
}
修改:随机去掉两个局部变量
总结2:
GCC环境下,全局未初始化变量设置默认值(int类型默认值0;字符指针默认null)
局部未初始化变量有时设置随机值或者默认值
实例测试3--VS2013环境:
总结3:
VS2013环境,全局未初始化变量设置默认值(int类型默认0,指针默认null)
局部未初始化变量只定义不使用(警告);定义+使用(报错)
总结:
1. 局部变量未初始化,初值为随机值:C规范对该初值并没有做规定,具体实现由编译器决定。
2.全局变量未初始化,默认设置为初值。
3.局部未初始化变量,编译通过与否与具体编译环境相关。
结论:无论任何时候,变量初始化!
C语言中变量未初始化的处理相关推荐
- 在c语言中函数的定义变量的值为,变量定义(C语言中变量的声明和定义)
变量定义(C语言中变量的声明和定义),哪吒游戏网给大家带来详细的变量定义(C语言中变量的声明和定义)介绍,大家可以阅读一下,希望这篇变量定义(C语言中变量的声明和定义)可以给你带来参考价值. 3.函数 ...
- 在c语言中 使用变量的要求,关于C语言中变量的探讨
摘 要: 在所有的计算机高级语言中,都存在着变量这样一个重要的概念.变量是计算机高级语言程序的重要成分之一.与其他语言中的变量相比,C语言中的变量所包含的内容更为丰富,包括变量的定义.数据类型.变量数 ...
- C语言中变量的静态分配(Static)和动态分配(StackHeap)
目录 C语言中变量的静态分配(Static)和动态分配(Stack&Heap) 变量的静态分配 包含了哪些变量? 全局变量和局部变量(staic关键字) 通过一个例子进行诠释 变量的动态分配 ...
- C语言中变量的作用域
C语言中变量的作用域 C语言中所有变量都有自己的作用域,申明变量的类型不同,其作用域也不同.C语言中的变量,按照作用域的范围可分为两种, 即局部变量和全局变量. 一.局部变量 局部变量也称为内部变量. ...
- C语言中变量的储存类别
C语言中变量的储存类别 C语言中变量的储存类别 1.动态存储方式与静态动态存储方式: 从变量值存在的作时间(即生存期)角度来分,可以分为静态存储方式和动态存储方式. 静态存储方式:是指在程序运行期间分 ...
- [转载] Java 语言中的实例初始化块 ( IIB) 详解
参考链接: Java中的实例初始化块(IIB) 在 Java 语言中的类初始化块 文章中我们简单的介绍了下 Java 中的实例初始化块 ( IIB ).不过我觉得介绍的有点简单了,于是,再写一篇文章详 ...
- java里的初始化块_[转载] Java 语言中的实例初始化块 ( IIB) 详解
参考链接: Java中的实例初始化块(IIB) 在 Java 语言中的类初始化块 文章中我们简单的介绍了下 Java 中的实例初始化块 ( IIB ).不过我觉得介绍的有点简单了,于是,再写一篇文章详 ...
- 单片机c语言字符,单片机C语言中变量的定义方法解析
描述 1.C语言中变量的定义方法 -C语言中变量定义语法为: #pragma rambank0 :即以关键词#pragma开始,rambank0指明资料区块为第0块. unsigned char m_ ...
- java语言变量分为_在Java语言中变量分为四种,分别是___________________________________________。_学小易找答案...
[填空题]One day, at the registrar's office of a college, I noticed how parents are behaving with their ...
最新文章
- cocos2d-x一些核心概念介绍
- 在虚幻UE4中不同VR头盔的FOV和分屏处理
- Java中的冒泡排序(减少比较次数)
- C# Gabbage Collecting System
- PMP杂谈--PMP中一些easy忽视的地方
- iOS网络 AFN简单的下载 与 session下载带进度数据
- 解决远程服务器ssh登陆慢等问题
- 二叉树非递归遍历算法(II)中序
- Windows 10安裝.net Framework 3.5出現0X800F0954錯誤
- When I started loving myself 当我开始爱自己 ——查理·卓别林
- 超五类屏蔽双绞线和计算机电缆区别,超五类单屏网线和六类单屏蔽网线的区别是什么?...
- 利用vuex关闭当前tab页签
- 正则表达式re库 python3
- 微信小程序提取汉字字母大写
- Python批量处理图片名
- PHP socket demo
- 【Vim】学习笔记四 多文件编辑、可视模式、视窗操作
- 复杂网络多局域世界模型matlab算法实现
- 计算机局域网采用的数据传输系统,两台win7系统电脑怎么使用局域网传输文件...
- 数据仓库概念和项目架构