C day1 数据类型1

来源:互联网 发布:冰点文库下载器mac版 编辑:程序博客网 时间:2024/06/08 17:11

       在C语言中,数据类型常用的大体分为基本数据类型、指针数据类型、构造数据类型,还有枚举型、空类型。在编程过程中,不同的CPU,其数据类型意义各不相同,所以一定要注意相应变量的数据类型的定义和转换,否则在计算中可能会出现不确定的错误。

       一、变量

       其值在其作用域内可以改变的量称为变量。变量可以被覆盖、写入、赋值。变量在内存中占据一定的存储空间,不同类型的变量占据的内存空间不同。每个变量必须有一个名字和所在内存空间的绑定。变量名在声明时就和内存中的一地址绑定了,可以通过地址找到其内存区域(后面的指针专门干这个的);变量的值则是变量所对应的尺寸区域内存放的二进制序列,其值不会随着变量的类型的改变而改变(所以强制类型转换能OK),只是printf的样子不同(我还是我只是换了身打扮)。

     1.1.1局部变量

    C语言中所有的量都有自己的作用域。

    局部变量实在函数内做定义说明的起作用仅限于函数内

     有几点要说明:

      ①主函数也是一个函数,主函数和其他函数是平行关系(同级待遇,都是科员,没有高低之分),这一点和其他一些语言不同。

      ②形参可以理解为被调函数的局部变量,实参则是属于主函数  的局部变量。

     ③不同函数可以使用相同的变量名,他们代表不同的对象,分配不同的内存单元(机器不会弄混,但是你就不好说了 :)

      ④ 在复合语句{}中可以定义变量,其作用域只在复合语句范围内。(哈哈,想不到吧,老师教的时候好像这个没提)

     必须举个例子: 

     

第7行由复合语句内定义的k起作用(作用完就释放了),所以输出8;而第10行输出的k应是main所定义的k,应该输出5


     1.1.2全局变量

     全局变量在函数外定义的变量,它不属于某一个函数,其作用域是整个源程序,但在一个函数之前定义全局变量,在函数内使可不再加以说明。

xy在f1之后,所以xy在f1内无效,ab则在f1、f2、main中不加说明也可使用。

    :在同一源文件中,外部变量和局部变量同名,则在局部变量作用域内,外部变量被屏蔽,不起作用。

      1.2 常量

     常量的值在其作用域内不会发生改变,也不能被赋值,只能被访问、被读。有点类似const关键字。

      1.3 基本内置类型

        比较常见而且现阶段常用的类型

      内容可参考:

https://wenku.baidu.com/view/8caf58252f60ddccdb38a001.html

https://wenku.baidu.com/view/8eb2f8c8d5bbfd0a7956737a.html

    用的时候切记其值的范围!!!避免溢出,特别是有符号的值!!

     1.4 static

      用static修饰局部变量

      变量存放在静态数据区,生命周期持续到整个程序执行结束, 该变量则只在初次运行时进行初始化工作,且只进行一次。如果没有进行初始化则自动赋值0,字符数组赋值“/0”

      用static修饰全局变量

      全局变量可以在同一个工程其他源文件中被访问(只需要extern声明即可)。

      用static修饰函数      和修饰全局变量相似,改变函数作用域。


      1.5 extern

       一旦修饰变量和函数,表示该变量或函数在其他地方被定义(本源文件或其他源文件),可以实现多源文件共享变量和函数。

0 0
原创粉丝点击