zoukankan      html  css  js  c++  java
  • C语言-数据类型

         在所有程序语言中,c语言是最重要的,学号c语言就很容易掌握其它语言。这点我深有体会,自接触编程以来,有了c语言基础,学面向对象语言可以轻松上手。因为每一种语言都会有共存性。同时,一个好的程序员在编写代码时,一定要有规范性,清晰、整洁的代码才是最有价值的。

    • 编程规范:(1)代码缩进,一般统一为四个字符。(2)变量常量的命名要规范,常量的命名统一为大写格式(如:#define AGE 20);如果是成员变量均以m_开始(如:int m_iAge);如果是普通变量,取与实际意义相关的名称,要在前面添加类型的首字母(如:int iDog);如果是指针类型,则为其标志符前添加p字符,并且名称首字母要大写(如:int* pNumber)。(3)函数命名规范:在定义函数时,函数名的手写字母要大写,其后面字母大小写混合(如:int AddTwoApple(int m1,int m2))。(4)注释;尽量采用行注释。如果出现多个注释,并且代码注释比较短,则应对其注释。
    • c语言中的关键字:C语言中有32个关键字,C语言中的关键字是不允许作为标识符出现在程序中,其含义如下
      auto 局部变量(自动储存)
      break无条件退出程序最内层循环
      case switch语句中选择项
      char单字节整型数据
      const定义不可更改的常量值
      continue中断本次循环,并转向下一次循环
      default switch语句中的默认选择项
      do 用于构成do.....while循环语句
      double定义双精度浮点型数据
      else构成if.....else选择程序结构
      enum枚举
      extern在其它程序模块中说明了全局变量
      float定义单精度浮点型数据
      for构成for循环语句
      goto构成goto转移结构
      if构成if....else选择结构
      int基本整型数据
      long长整型数据
      registerCPU内部寄存的变量
      return用于返回函数的返回值
      short短整型数据
      signed有符号数
      sizoef计算表达式或数据类型的占用字节数
      static定义静态变量
      struct定义结构类型数据
      switch构成switch选择结构
      typedef重新定义数据类型
      union联合类型数据
      unsigned定义无符号数据
      void定义无类型数据
      volatile该变量在程序中执行中可被隐含地改变
      while用于构成do...while或while循环结构
    • 标识符:在C语言中为了在程序运行过程中可以使用变量,常量,函数,数组等,就要为这些形式设定一个名称,这个名称就是所谓的标识符。C语言中标识符的一些命名规则如下:(1)所有标识符都必须有字母或者下划线开头,不能使用数字或者符号作为开头;(2)除了开头外,在其他的任何地方都可以由字母数字下划线;(3)英文字母的大小写代表着不同的标识符;(4)标识符不能是关键字;(5)标识符命名最好有相关的含义
    • 数据类型:

    • 常量:常量就是在程序运行中是不可以改变的,这点是在几乎所有语言中都是这样。常量分为三大类:(1)数值型常量(包括整形常量和实型常量);(2)字符型常量;(3)符号常量
    • 转义字符:

    • 变量:变量就是在程序运行中其值是可以变化的量,每一个变量都是一种类型,每一种类型都定义了类型的格式和行为。一个变量应该有属于自己的空间和内存分配地址。变量包括:(1)整型变量(用来存储整型数值的变量);(2)实型变量也叫作浮点型变量;(3)字符型变量。
    • 变量的存储类别:在程序设计中我们经常会用到变量,在C语言中可以选择变量的不同存储形式,存储类别分为静态存储和动态存储。可以通过存储类型修饰符来告诉编译器来处理什么类型的变量,具体有以下四种:(1)自动(auto);(2)静态(static);(3)寄存器(register);(4)外部(extern)。
    • 动态存储和静态存储:从变量产生的时间可以分为动态存储和静态存储。静态存储就是指程序运行分配的固定的存储方式;而动态存储是在程序运行期间根据需要的动态地址分配存储空间。
    • Auto关键字是用来修饰一个局部变量为自动的,这意味着每次执行到定义该变量的时候,都会产生新的变量,并且重新对它进行初始化,如下例;auto关键字是可以省略的,如果没有特别的指定,变量的默认存储方式就是自动的。
    #include<stdio.h>
    void AddOne()
    {
        auto int iMy=1;
        iMy=iMy+1;
        printf("%d
    ",iMy);
    }
    int main()
    {
        printf("第一次调用:");
        AddOne();
        printf("第二次调用:");
        AddOne();
        return 0;
    }
    //程序运行的结果为:2,2
    • static变量:为静态变量,将函数内部和外部变量声明成static变量的意义是不一样的,对于局部变量来说,static变量是和auto变量相对而言的,尽管两者的作用域都是在函数体内部,但是语句执行期间,static变量将始终保持他的值,并且初始化操作只在第一次执行时起作用。在随后的程序运行中,变量将保持语句块上一次执行时的值。
    #include<stdio.h>
    void AddOne()
    {
        static int iMy=1;
        iMy=iMy+1;
        printf("%d
    ",iMy);
    }
    int main()
    {
        printf("第一次调用:");
        AddOne();
        printf("第二次调用:");
        AddOne();
        return 0;
    }
    //程序运行的结果是:2,3
    • register变量:register变量为寄存器存储变量。使用register变量的目的在于让程序员指定把某个局部变量存放在某个硬件寄存器而不是内存中。这样的好处是提高程序的运行速度。不过,这只是反映程序员的主观意愿,实际上编辑器可以忽略register对变量的修饰。用户无法获取寄存器变量的地址,因为绝大多数计算机的硬件寄存器都是不占用内存地址的。而且,即使编译器忽略register而把变量放在可设定的内存中,也是无法获取变量的地址的。如果想有效的利用寄存器register关键字,必须像汇编语言程序员那样,了解处理器的内部结构,知道可用于存放变量的寄存器数量,种类,以及工作方式。不同的计算机对于这些细节是不同的,因此,对于一个要具备可移植的程序来说,register的作用并不大。
    • extern变量:为外部存储变量,extern声明了程序中将要用到但是尚未定义的外部变量。通常,外部存储类都用于声明在另一个转换单元定义的变量;一个工程是由多个C文件组成。这些源代码分别编译,然后链接成一个可以执行的模块,把这样一个程序做为一个工程进行管理,并且生成一个工程文件来记录所包含的所有源代码文件。
  • 相关阅读:
    Multi-Agent Actor-Critic for Mixed Cooperative-Competitive Environments环境代码详解
    zc.buildout构建项目时报错‘AttributeError: '_NamespacePath' object has no attribute 'sort'’
    利用Jenkins打包ISO和QCOW2镜像文件
    解决python pip安装提示"not a supported wheel on this platform"
    Kali 2017.3开启VNC远程桌面登录
    Jenkins邮件扩展插件Email Extension Plugin配置使用
    Jenkins执行sudo权限的设置
    如何解决源码安装软件中make时一直重复打印configure信息
    CentOS 7下安装配置proftpd搭建ftp服务器
    如何使用capedit分割数据包文件
  • 原文地址:https://www.cnblogs.com/deng-c-q/p/4894568.html
Copyright © 2011-2022 走看看