编程初步————学渣再修C语言之路

内存:

  程序在执行时,程序的指令和数据都必须存储到主内存中,也可以说存在RAM(随机访问存储器)中,RAM是易失性存储器,PC关闭,RAM内容丢失;

变量是什么?

  变量就是计算机的一块特定的内存,有一个或多个连续的字节组成,当然每个变量都会有一个名字叫变量名,就像一个ID,一个身份证号码,这个变量名独一无二的代表着这块  内存空间,编译器就可以通过这个ID来直接调用这块内存里存储的数据了,这也很好的解释了变量名不占内存空间,编译器直接就把他翻译成了数据;

  变量的声明其实也可以称为变量的定义,按照声明得到一个引用(变量名),定义分配内存空间来看,变量在声明时就分配了内存空间,所以变量的声明也可以看做是定义;

  变量是内存,那么这个内存多大呢?就要看声明的数据类型了。

整型:

  整型有有符号整型与无符号整型之分,它们所占的字节数是相同的,但是无符号的整型比其对应的有符号整型的数字大一倍,这其实很好验证,可以用<limits.h>头文件(一会  再说)。

  有这么多的整型类型,怎么知道一个数是什么类型,比如 100 ,它可以是 unsigned int  、int 等等。一个整型数值编译器默认是int,如果你想100是long型,就写成     100L,其他的同理。其实感觉这个没什么用。

  最让我惊奇的是,竟然有long long int ,占8个字节,还有以前似乎short类型的输入与输出都是直接%d,其实准确的是%hd。

浮点型:

  浮点数在计算机中是怎样表示的,这个忘了,也不想再看了,等需要时再说吧。

  刚开始学C语言老师就说没有long double类型,但是今天我发现其实有,这取决于编译器,vc6.0没有,但是CodeBlocks有这个类型,它占12个字节。

  一直郁闷二级考试中,为什么sizeof('a'+10.0)输出的是8,今天知道了,原来一个带小数点的数默认下编译器直接当做double型,除非你这样写100.0f。

  浮点数输出时要控制一下格式,什么%8.2f什么的就不写,关键今天知道了,编译器原来默认情况是右对齐,你可以写成%-8.2f,就变成了左对齐,就是下面图片的区别

    上边是左对齐,下边是右对齐。

布尔型:

    众所周知,C语言中没有布尔类型,但是今天我发现有布尔类型,而且只占一个字节,当不包含<stdbool.h>头文件时,如下声明:

        _Bool  变量名;

     当包含<stdbool.h>头文件时,可以这样声明

        bool 变量名 = true;

     这个头文件中定义了true和false两个常量,分别是1和0。这些是C语言中最新引入的,不过我在CodeBlocks上验证过了,这是可以的。

    字符类型和枚举类型的就不写了,感觉掌握的还可以。

类型之间的转换:

    强制类型转换没什么,可能暴力的总是崇尚简单美吧。

    自动类型转换时,编译器会自动把一个值域较小的操作数转换为另一个操作数的类型,这就是隐式类型转换,这里有7条详细的规则,但是基本上掌握了上面的那个规则就    可以解决大多数问题了。

<limits.h>

    从名字就可以看出这是封装了一些极限值的头文件。

    

类型            下限            上限
char            CHAR_MIN       CHAR_MAX
short           SHORT_MIN      SHORT_MAX
int             INT_MIN        INT_MAX
long            LONG_MIN       LONG_MAX
long long       LLONG_MIN      LLONG_MAX

    无符号类型的下限都是0,上限同理命名,就是在前面多加了一个U,比如:UINT_MAX

<float.h>

  在这个头文件中封装了浮点型的一些极值和其他东西,有些东西难度系数很高,以后再来了解。

类型            下限            上限
float           FLT_MIN        FLT_MAX
double          DBL_MIN        DBL_MAX
long double     LDBL_MIN       LDBL_MAX

  命名好奇怪吧,其实就是省略的所有的元音字母的命名规则吧。

sizeof:

  在C语言中sizeof是一个关键字,并不是函数名,它可以用来确定给定的类型所占的字节数,得到一个size_t类型的整数(unsigned int),size_t包含在<stddef.h>头文件中。

  sizeof还有其他重要用途。

又是愉快的一天啊、、、、、

原文地址:https://www.cnblogs.com/969059506-java/p/3695493.html