初识C语言之数据类型篇——带你窥探编程世界的风景!

举报
王小王-123 发表于 2021/04/21 23:58:35 2021/04/21
4k+ 0 0
【摘要】 目录 数据类型 C语言数据类型 编程规范 关键字 标识符 数据类型 常量 整型常量 实型常量 字符型常量 转义字符 变量 整型变量 实型变量 字符型变量 变量的储存类别 混合运算 每文一语 数据类型 C语言数据类型 byte 8位、有符号的以二进制补码表示的整数min :    -128(-2^7)max:   127(2^7...

目录

数据类型

C语言数据类型

编程规范

关键字

标识符

数据类型

常量

整型常量

实型常量

字符型常量

转义字符

变量

整型变量

实型变量

字符型变量

变量的储存类别

混合运算

每文一语


数据类型

C语言数据类型

byte

  • 8位、有符号的以二进制补码表示的整数
  • min :    -128(-2^7)
  • max:   127(2^7-1)
  • default: 0
  • 对应包装类:Byte

short

  • 16位、有符号的以二进制补码表示的整数
  • min :    -32768(-2^15)
  • max:   32767(2^15 - 1)
  • default: 0
  • 对应包装类:Short

int

  • 32位、有符号的以二进制补码表示的整数
  • min :    -2,147,483,648(-2^31)
  • max:   2,147,483,647(2^31 - 1)
  • default: 0
  • 对应包装类:Integer

long

  • 64位、有符号的以二进制补码表示的整数
  • min :    -9,223,372,036,854,775,808(-2^63)
  • max:   9,223,372,036,854,775,807(2^63 -1)
  • default: 0
  • 对应的包装类:Long

float

  • 单精度、32位、符合IEEE 754标准的浮点数
  • float 在储存大型浮点数组的时候可节省内存空间
  • 浮点数不能用来表示精确的值,如货币
  • default: 0.0f
  • 对应的包装类:Float

double

  • 双精度、64位、符合IEEE 754标准的浮点数
  • 浮点数的默认类型为double类型
  • double类型同样不能表示精确的值,如货币
  • default: 0.0d
  • 对应的包装类:Double

char

  • char类型是一个单一的 16 位 Unicode 字符
  • 最小值是 \u0000(即为0)
  • 最大值是 \uffff(即为65,535)
  • char 数据类型可以储存任何字符
  • 对应的包装类:Character

boolean

  • boolean数据类型表示一位的信息
  • 只有两个取值:true 和 false
  • 这种类型只作为一种标志来记录 true/false 情况
  • 对应的包装类:Boolean

编程规范

代码缩进

代码缩进统一为4个字符。不采用空格,而用<Tab>键制表位。

变量、常量命名规范

在定义函数时,函数名的首字母要大写,其后的字母大小写混合。例如:

int AddTwoNum(int num1,int num2);

 

注释

尽量采用行注释。如果行注释与代码处于一行,则注释应位于代码右方。如果连续出现多个行注释,并且代码较短,则应对齐注释。例如:


      int iLong;	/*长度*/
      int iWidth; 	/*宽度*/
      int iHieght /*高度*/
  
 

关键字

auto

double

int

struct

break

else

long

switch

case

enum

register

typedef

char

extern

union

return

const

float

short

unsigned

continue

for

signed

void

default

goto

sizeof

volatile

do

while

static

if

标识符 

标识符

标识符是什么?

C语言中为了在程序的运行过程中可以使用变量、常量、函数、数组等,就要为这些形式设定一个名称,而设定的名称就是所谓的标识符。

C语言标识符应该遵守的一些命名规则

所有标识符必须由字母或下划线开头,而不能使用数字或者符号作为开头


      int !number;	/*错误,标识符第一个字符不能为符号*/
      int 2hao;	/*错误,标识符第一个字符不能为数字*/
      int number;	/*正确,标识符第一个字符为字母*/
      int _hao;	/*正确,标识符第一个字符为下划线*/
  
 

在设定标识符时,除开头外,其他位置都可以由字母、下划线或数字组成

int good_way;	/*正确,标识符中可以有下划线*/

 

在标识符中,可以有数字


      int bus7;		/*正确,标识符中可以有数字*/
      int car6V;		/*正确*/
  
 

英文字母的大小写代表不同的标识符,也就是说,在C语言中是区分大小写字母的


      int mingri;	/*全部是小写*/
      int MINGRI;	/*全部是大写*/
      int MingRi;	/*一部分是小写,一部分是大写*/
  
 

标识符不能是关键字


      int int;		/*错误!*/
      int Int;		/*正确,改变标识符中的字母为大写*/
  
 

标识符的命名最好具有相关的含义


      int a;		/*代表长度*/
      int b;		/*代表宽度*/
      int c;		/*代表高度*/
      int iLong;
      int iWidth;
      int iHeight;
  
 

ANSI标准规定,标识符可以为任意长度,但外部名必须至少能由前8个字符唯一地区分

数据类型

常量

整型常量

无符号短整型

无符号短整型的取值范围是065535,而符号短整型的取值范围是-32768+32767,这些都是16位整型常量的范围

整型

无符号短整型的取值范围是065535,而符号短整型的取值范围是-32768+32767,这些都是16位整型常量的范围

实型常量

科学计数方式

科学计数方式就是使用十进制的小数方法描述实型,例如:


      SciNum1=123.45;  /*科学计数法*/
      SciNum2=0.5458;
  
 

指数方式

有时候实型非常大或者非常小,这样使用科学计数方式是不利于观察的,这时可以使用指数方法显示实型常量。其中,使用字母e或者E进行指数显示,如45e2表示的就是4500,而45e-2表示的就是0.45。例如上面的SciNum1和SciNum2代表的实型常量,改使用指数方式显示这两个实型常量如下所示:


      SciNum1=1.2345e2;  /*指数方式显示*/
      SciNum2=5.458e-1;
  
 

字符型常量

字符常量

使用单撇号括起一个字符,这种形式就是字符常量。例如,'A'、'#'、'b'等都是正确的字符

常量。在这里需要注意以下几点有关使用字符常量的注意事项。

字符常量中只能包括一个字符,不是字符串。例如:'A'是正确的,但是用'AB'来表示字符 常量就是错误的。
字符常量是区分大小写的。例如:'A'字符和'a'字符是不一样的,这两个字符代表着不同 的字符常量。
'这对单撇号代表着定界符,不属于字符常量中的一部分。
 

字符串常量是用一组双引号括起来的若干字符序列。如果在字符串中一个字符都没有,将其称作空串,此时字符串的长度为0。例如“Have a good day!”和“beautiful day”即为字符串常量。

 C语言中存储字符串常量时,系统会在字符串的末尾自动加一个“\0”作为字符串的结束标志。

例如字符串“welcome”在内存中的存储形式如图所示。

转义字符

转义符号在字符常量中是一种特殊的字符。转义字符是以反斜杠“\”开头的字符,后面跟一个或几个字符。常用的转义字符及其含义如表所示。

转 义 字 符

转义字符的意义

\n

回车换行

\t

横向跳到下一制表位置

\v

竖向跳格

\b

退格

\r

回车

\f

走纸换页

\\

反斜线符

\'

单引号符

\a

鸣铃

\ddd

1

\xhh

1

变量

整型变量

整型变量是用来存储整型数值的变量。整型变量可以分为6种类型,其中基本类型的符号使用int关键字,在此基础上可以根据需要加上一些符号进行修饰,如关键字short或long。下表是这6种类型的介绍。

类 型 名 称

关  键  字

有符号基本整型

[signed] int

无符号基本整型

unsigned [int]

有符号短整型

[signed] short [int]

无符号短整型

unsigned short [int]

有符号长整型

[signed] long [int]

无符号长整型

unsigned long [int]

实型变量

实型变量也称为浮点型变量,是指用来存储实型数值的变量,其中实型数值是由整数和小数两部分组成的。实型变量根据实型的精度也可以分为3种类型,包括单精度类型、双精度类型和长双精度类型。下表是这3种类型的介绍。

类 型 名 称

关  键  字

单精度类型

float

双精度类型

double

长双精度类型

long double

字符型变量

字符型变量是用来存储字符常量的变量。将一个字符常量存储到一个字符变量中,实际上是将该字符的ASCII码值(无符号整数)存储到内存单元中。

字符型变量在内存空间中占一个字节,取值范围是-128~127。

定义一个字符型变量的方法是使用关键字char,例如要定义一个字符型的变量cChar,为cChar变量赋值为‘a’的方法如下:


       char cChar;	/*定义字符型变量*/
       cChar= 'a';	/*为变量赋值*/
   
  

变量的储存类别

动态存储与静态存储

从变量的产生时间上可以分为静态存储和动态存储。 

静态存储就是指程序运行分配的固定的存储方式,而动态存储则是在程序运行期间根据需要动态地分配存储空间

auto变量

auto关键字就是修饰一个局部变量为自动的,这意味着每次执行到定义该变量的时候,都会产生一个新的变量,并且对其重新进行初始化。

static变量

static变量为静态变量,将函数的内部和外部变量声明成static变量的意义是不一样的(有关函数的内容在本书的后续章节进行介绍)。不过对于局部变量来说,static变量是和auto变量相对而言的。尽管两者的作用域都是仅限于声明变量的函数之中,但是在语句块执行期间,static变量将始终保持它的值,并且初始化操作只在第一次执行时起作用。在随后的运行过程中,变量将保持语句块上一次执行时的值。

register变量

 register变量称为寄存器存储类变量。使用register的目的在与让程序员指定把某个局部变量存放在计算机的某个硬件寄存器而不是内存中。这样的好处是可以提高程序的运行速度。不过,这只是反映了程序员的主观意愿,实际上编辑器可以忽略register对变量的修饰。

用户无法获得寄存器变量的地址,因为绝大多数计算机的硬件寄存器都不占用内存地址。而且,即使编译器忽略register而把变量存放在可设定的内存中,也是无法获取变量的地址的。

 如果想有效地利用寄存器register关键字,必须像汇编语言程序员那样了解处理器的内部结构,知道可用于存放变量的寄存器的数量、种类以及工作方式。但是,在不同的计算机对于这些细节可能是不同的,因此,对于一个要具备可移植的程序来说,register的作用并不大。

extern变量

 extern变量称为外部存储变量。extern声明了程序中将要用到但尚未定义的外部变量。通常,外部存储类都用于声明在另一个转换单元中定义的变量。

一个工程是由多个C文件组成的。这些源代码文件分别编译,然后链接成一个可执行模块。把这样的一个程序作为一个工程进行管理,并且生成一个工程文件来记录所包含的所有源代码文件。

混合运算

不同类型之间可以进行混合运算,例如10+'a'-1.5+3.2*6

在进行这样的计算时,不同类型的数据要先转化成同一类型,然后进行运算。转化的方式如图所示。

每文一语

走过的路遇见的人皆是风景!

文章来源: blog.csdn.net,作者:王小王-123,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_47723732/article/details/115567089

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。