欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

1.深刻理解基本数据类型与变量

程序员文章站 2022-07-15 17:04:37
...

什么是数据类型?

数据类型可以理解为固定内存大小的别名,是创建变量的模子。

什么是变量?

变量是一段实际连续存储空间的别名,程序中通过变量来申请并命名存储空间,通过变量的名字来使用存储空间。

我自己的抽象

对于数据类型与变量这个概念,我刚初学的时候也没有怎么理解,随着学习与编程的深入,对此有了个自认为比较实用的抽象:
一般我们编程的时候需要这样写: int i;char s; short b;这时应该问自己,为什么要这样写呢?好,我们继续追问下去----编程的本质其实是计算我们的数据,(这也解释了为什么叫计算机了),计算数据首先要知道我们的数据在哪里?然后谁计算?当然数据在内存中,然后CPU计算啊,对了,数据需要放在内存中,那么怎么放在内存中呢?那么C语言就给了我们的方法 int i;通过这样来放,这样是什么意思呢?其实int这玩意儿就是告诉编译器我们需要多大的内存,i这玩意儿是给这段内存起了个名字,好让我们知道它,这就像我们需要装些水,那我们得估计这水需要多大的杯子装,以及这个杯子的编号是多少(名字),这样我们才好找这个杯子啊。
此时:

      int   ---  内存多大? 4个字节
       i    ---- 这段内存是什么名字?名字叫i
      char  --   内存多大? 1个字节
       s ---     这段内存叫什么名字? 名字叫s
   像int、char这些叫数据类型的东西,在编程的时候实际上就是告诉编译器
   我需要多大的内存来装我的数据。像i、s这些叫变量的东西,实际上就是告诉编译器我这段内存
   的名字叫什么,我下面程序用到这个名字的时候,编译器要知道我用的是哪段内存空间。
   例:
        int i = 1000;  //告诉编译器,我需要4个字节名字叫i的一段内存来,装1000这个数据;
        int i = 10 0000; //告诉编译器,我需要4个字节来装10 0000这个数据,此时肯定装不下啊。
    
    因此在编程代码的时候,我们脑海里优先呈现的是数据是什么样的,然后在考虑用什么样的数据类型
    (用多大的内存空间),然后再考虑用什么样的名字命名比较合适。
    例:
       这里有1000个学生:我这样考虑---描述的是学生个数这个数据,1000这个数字只需要int这么大就行,然后名字为student,此时
       代码应该是这样: int student = 1000;

同理,其它的基本数据类型也是这样考虑的。

 谈论到数据类型与变量,这时让人不由的想起两个东西:sizeof 与typedef。
   sizeof是什么?这里先这样理解:sizeof 犹如一杆秤,用来秤内存大小的,
   例:
     int i = 1000;
      printf(  "%d",  sizeof(int) ); //秤一下int这个数据类型所代表的空间为4个字节。
      printf(  "%d",  sizeof(i) );  //秤一下i这个变量所占内存的空间大小为4个字节。
      秤内存大小有什么用呢? 当然有太多的用啦。后面有讲,继续关注。。。。

 typedef是什么?这里先这样理解:typedef犹如取名字的机器,用来给数据类型取名字的。
 那么有什么用呢? 
 1.耍耍障眼法:如---  typedef int China;   China  i;实际上就是int i;在复合数据类型中主用于封装数据,提高数据的隐秘性。
 2.在遇到自定义的复杂数据类型的时候,方便简化数据类型的书写。后面牵扯到函数指针时很实用。

小结

1.最好不要表面去理解数据类型与变量,而是实实在在的去接近它:int i = 1000;我需要4个字节名字为i的一段内存空间存储1000这个数字;
2.sizeof与typedef这两个家伙,是数据类型与变量最好的伴侣。
3.慢慢体会,一次体会不到也没有关系,多体会几次就有感觉了。

注: 本文由作者在狄泰软件学院学习、总结、体会后所得。

相关标签: C C++