美文网首页
浅谈C语言的初始化

浅谈C语言的初始化

作者: coder_那一抹刚吹过的风 | 来源:发表于2016-03-31 14:39 被阅读276次

可能以前写的代码太少了,现在突然发现其实C语言变量的初始化也是一门不小的学问。其实很早之前我都天真的以为C语言会将变量自动初始化为0或'0'或NULL,但是在以后的编程我愈发发现,我真是太天真了。跟大家啰嗦一句,在C语言中,变量的第一次赋值,被称为变量的初始化。
首先我们来看C语言中最常用的普通变量,首先大家测试一下一下的代码:

    int c;
    printf("%d\n", c);

这是一顿很简单的代码,但是大家猜猜输出的是什么?猜0的兄弟,我估计你肯定不是专业写C,其实这个时候变量c是一个不确定的值。

说完这个之后咱们再说一下全局变量,测试代码如下:

    int a, c[3];
    int main(int argc, char *argv[]) {
            printf("%d", a);
            int i = 0;
            for (i = 0; i < 0; i++) {
                  printf("%d\t", c[i]);
          }   
    }

还有一个静态变量和常量,说起静态变量大家可以类比一下全局变量,他们都被存储在内存的静态区域中,性质都是差不多的。常量则是你必须要初始化的,想象一下,常量是不允许修改的,如果你定义常量而不赋值,意义何在。

说完上面的咱们再说一个非常重要的,那就是指针的初始化,为什么这个比较重要的,同样,测试过普通变量的同学都知道,如果定义一个变量而不初始化,这个变量的值是不确定的。这个时候如果是一个普通变量,就算是我们不小心用了没有这个初始化的变量也不过是造成你现在程序出现bug。但是如果是指针没有初始化,也就是我们经常说的野指针,这个结果相当的可怕,想象一下,如果你现在的指针正好指向你内存初始化地址,这个时候你赋值这个指针为NULL,运行一下。。。。。。
虽然上面的事情发生的可能性很小,但是还是非常危险的,所以我建议大家养成一个好的习惯,所有的变量我们声明的过程中最好都是初始化一下,数字初始化0,字符初始化为'\0', 字符串和指针初始化为NULL, 数组的话,感觉不同的类型根据类型进行不同初始化。

相关文章

  • 浅谈C语言的初始化

    可能以前写的代码太少了,现在突然发现其实C语言变量的初始化也是一门不小的学问。其实很早之前我都天真的以为C语言会将...

  • 浅谈C语言数组与指针的关系

    浅谈指针定义细节及其与数组的关系 前言 翁恺老师曾经说过,指针是 C 语言的灵魂,是使 C 语言成为 “C语言” ...

  • C++变量声明与定义

    一、变量的初始化方式 1、C、C++通用初始化方法 1、常用的初始化语法,沿用于C语言 2、C++特有的变量初始化...

  • 浅谈C 语言基础知识(一)基本数据类型

    浅谈C 语言基础知识(一) 目的: 今天我们从第一个程序“Hello,world!“出发,走进C 语言,带领大家回...

  • iOS-浅谈__bridge

    浅谈__bridge,__bridge_retained,__bridge_transfer通过OC对象与C语言转...

  • iOS 网络相关面试题(一个基于UDP的简单的聊天Demo)

    一、分别用C语言、python、GCDAsyncUdpSocket来实现UDP通信 1、C语言方式 首先初始化so...

  • 浅谈 C 语言历史

    引言 一直想做个技术分享的社区,让我们每个人都有机会把自己学到的编程知识分享出来一起探讨,于是借这次学弟学妹们的入...

  • 浅谈C语言指针

    指针是C语言里最强大的类型,合理的使用指针能够使程序灵活简洁又高小,但是使用不合理的话又会给程序带来灾难性的后果,...

  • 浅谈C 语言基础知识(二)—— 函数

    浅谈C 语言基础知识(二)—— 函数 导语 在前面内容中我们知道了基本的 C 语言的基本的数据类型,在我们的第一个...

  • JavaScript到底怎么回收垃圾的?

    浅谈JavaScript的内存管理与垃圾回收机制。 诸如 C 语言这般的低级语言一般都有低级的内存管理接口,比如 ...

网友评论

      本文标题:浅谈C语言的初始化

      本文链接:https://www.haomeiwen.com/subject/qxvelttx.html