C语言回顾,数据类型

C语言回顾,数据类型

第1章 C语言总结

 

第1章
C语言总结
1.
C源程序的组织性情
2.
挥毫程序时应总固守的规行矩步
3.
C语言的字符集
4.
C语言词汇
第2章
数据类型,运算符,表明式
1.
C语言的数据类型
2.
整型量
3.
实型量
4.
字符型量
字符常量满含字符常量和字符变量
5.
变量的开始值和类型转换
6.
为主运算符和表明式[1]
小结

 

C语言的数据类型:基本数据类型、构造数据类型、指针类型、空类型。

  • 协会数据类型:是基于已定义的贰个或三个数据类型用构造方法来定义的。二个构造类型的值能够分解成若干个“成员”或“成分”
  • 指针类型:
    指针是意气风发种奇特的,相同的时间又是颇负首要职能的数据类型。其值用来表示有些变量在内部存款和储蓄器储器中的地址。

1. C源程序的组织特色

  1. 一个C语言源程序能够由一个或四个源文件组成
  2. 各个源文件可由贰个或八个函数组成
  3. 叁个源程序无论由多少个文本组成,都独有叁个且唯有三个main函数,即主函数
  4. 源程序中得以有预管理命令(include
    命令仅为内部后生可畏种卡塔尔国,预管理命令常常应放在源文件或源程序的最后边
  5. 每四个证实,每八个说话都一定要以总局结尾。但预管理命令,函数头和花括号“{}”之后不可能加分号
  6. 标志符,关键字里面必需最少加一个空格以示间距。若本来就有醒指标间距符,也可不再加空格来间距

常量与变量

2. 书写程序时应总据守的平整

  1. 一个证实或三个讲话占生龙活虎行
  2. 用 {} 括起来的风华正茂部分,平常表示了程序的某档期的顺序结构。{}
    经常与结构语句的首先个假名对齐,并单独占黄金时代行
  3. 低大器晚成等级次序的言辞或注解可比高后生可畏等级次序的讲话或证实缩进若干格后书写。

常量:程序实行进度中其值不发出更改的量。

  • 间接常量:
    a.整型常量:1,100,29,-10
    b.实型常量:5.2,6.4,-0.5
    c.字符常量:‘a’,’b’
  • 标识常量:用宏来代表多个常量。在C语言中,可以应用七个标志符来表示几个常量,称之为符号常量。
    标识常量在应用在此之前须要先定义,其相同情势为:
  • () #define 标识符 常量
    其中#define是一条预管理命令,称为红定义命令,其功能是把该标志符定义为以往的常量值。
    习贯上符号常量的标记符使用大写字母,变量标志符使用小写字母,以示分化
  • 例如:#define PI 3.1415926

3. C语言的字符集

  • 字符是结合语言的最基本的因素,C语言字符集由字母,数字,空格,标点和特殊字符组成,在字符常量中,字符串常量和注释中还是能够利用汉字或任何可代表的图形符号
  1. 字母:小写字母 a~z ,大写字母 A~Z

  2. 数字:0~9 共10个

  3. 空白符(空格符,制表符,换行符卡塔尔国只在字符常量和字符串常量中起效果。此外地点,只起间距效率
  4. 标点和特殊字符

变量:其值能够变动的量成为变量

叁个变量应该有三个名字,在内部存款和储蓄器中占领一定的存款和储蓄单元,变量在选取早先必须先定义。
int a=3; int是a的数据类型,a是变量名,3是变量值。

4. C语言词汇

  • 六类:标识符,关键字,运算符,分隔符,常量,注释符
  1. 标志符:在程序中使用的变量,函数名,标号等统称为标志符。除库函数的函数名由系统定义外,别的都由顾客定义。C
    规定,标记符只好是字母(A~Z,a~z)、数字(0~9卡塔尔、下划线(卡塔 尔(英语:State of Qatar)组成的字符串,况且第三个字符必需是字母也许下划线(要来讲之不能够是数字卡塔尔

  2. 重大字:是由C语言规定的享有特定意义的字符串,日常也称之为保留字。顾客定义的标记符不应与首要字同名
    1) 类型表达符:用于定义、表达变量、函数或任何数据结构的体系;如 int
    double等
    2) 语句定义符:用于表示二个言语的意义;if else 条件语句
    3) 预管理命令字:用于表示八个预管理命令; include等

  3. 运算符:C语言中带有极度丰富的运算符。运算符与变量,函数一同构成表明式,表示各样运算功效。运算符由三个或八个字符组成
  4. 相隔符:有逗号和空格三种。逗号主要用在项目表明和函数参数表中,分隔各类变量。空格多用来语句各单词之间,做间距符
  5. 常量:C语言中采纳的常量可分为数字常量,字符常量,字符串常量,符号常量,转义字符等各个
  6. 注释符:“/* */” 多行注释 # 单行注释

整型数据

第2章 数据类型,运算符,表明式

1.整型常量

整型常量正是整常数,C语言中的常整数有八进制,十三进制,十进制二种。
(1卡塔尔十进制整常数:十进制常整数未有前缀,其数据为0~9

  • 合法的十进制整常数,123,2,4356,-100.
  • 非法的十进制整常数:078,78A(含有非十进制数码卡塔尔国
  • 在前后相继中各种前缀用来差异各个进制数。
    (2卡塔尔国八进制常整数:八进制整数必得以0先导,即以0作为八进制数的前缀。数码为0~7。八进制平常是无符号数。
  • 法定的八进制整常数:015(13卡塔 尔(英语:State of Qatar),0101(64卡塔 尔(英语:State of Qatar),0177777(65535卡塔 尔(阿拉伯语:قطر‎
  • 不合规的八进制整常数:256,03A2,-0127
    (3卡塔尔十八进制整常数:十九进制整常数的前缀为0X或0x,其数据为09,af或A~F,
  • 合法的十八进制整常数:0X2A(42),0XA0(160),0XFFFF(65535)
  • 地下的十八进制整常数:5A,0X3H

1. C语言的数据类型

  • 可分为:基本数据类型,构造数据类型,指针类型,空类型
  1. 骨干数据类型:其值不得以再解释其余项目,
  2. 结构数据类型:是依据已定义三个或八个数据类型用构造的方法来定义的。七个构造类型的值能够分解成多少个“成员”或“元素”。每一个成员都以三个中坚数据类型或又是一个构造类型。构造类型:数组类型,结构类型,联合项目
  3. 指针类型:其值用来表示某些量在内部存款和储蓄器存款和储蓄器中的地址
  4. 空类型:在调用函数值时,平时应向调用者重临多少个函数值,类型表明符为:void

对此大旨数据类型量,按其取值是不是足以转移分为变量和常量;在程序实行中,其值不爆发转移的量称为常量,反之;可分为:整型常量,整型变量,浮点常量,浮点变量,字符常量,字符变量,枚举常量,枚举变量。在前后相继中,常量是足以不经表明而直白引用的,而变量则必需先验证后使用

实型数据

  • 十进制数情势:由0~9和小数点组成
  • 合法实数:0.0,0.12,4.567,-256.123 (必得有小数点)
  • 指数情势:由十进制数加阶码标记“e”或“E”以致阶码组成。
  • 其貌似情势为: a E n (a 为十进制数,n为十进制整数)
  • 其值为 a10^n.
    如:2.1e5(2.1
    10^5) 3.7e-2(3.710^-2) 0.5e7(0.510^7)

2. 整型量

  • 整型量富含整型常量、整型变量。整型常量正是整常数:八进制,十五进制,十进制
    二进制到八进制调换
    1 100 011 100 110
    1 4 3 4 6
    二进制到十九进制调换:
    1 1000 1110 0110
    1 8 E 6
  1. 整型常量
    1)
    八进制整常数八进制整常数必需为0起先,即以0作为八进制数的前缀。数码取值为0~7,八进制平时是无符号数
    015(十进制为13卡塔 尔(英语:State of Qatar) 0101(65卡塔尔
    2) 十八进制整常数的前缀为0X或0x。数码取值 0~9,A~F 或 a~f
    0X2A(十进制13) 0XA0(160)
    3) 十进制整常数没有前缀。数码取值 0~9

十进制无符号整常数的节制为 0~65535 有标识数为 -32768~32767 ;
八进制无符号数的意味范围为 0~0177777 ; 十五进制无符号数的表示范围为
0X0~0XFFFF 或 0x0~0xFFFF
假诺采取的数据超越了上述范围,就不得不用长整型数来表示。长整型数是用后缀
“L” 或 “l”
十进制长整常数 158L (十进制为158) 358000L(十进制为 -358000)
八进制长整常数 012L (十进制为 10) 077L (十进制为 63)
十三进制进制长整常数 0X15L (十进制为 21) 0X10000L (十进制为 65536)
整型常数的无符号数的后缀为 “U” 或 “u”

  1. 整型变量
    1) 基本型:int 在内部存储器中占 2 个字节,其取值为骨干整常数
    -32768~32768
    2) 短整量:short int 同基本型 -32768~32768
    3) 长整型:long int 或 long 在内存中占4个字节,其取值为长整常数
    -32768~32768
    4) 无符号型:unsigned
  • 变量表明的貌似情势:类型表明符 变量名称标志符 …:

<wiz_code_mirror>

 

 

 

 

 

 1 int a, b, c // (a,b,c 为整型变量) 2 long x, y // (x,y 为长整型变量) 

 

 

  • 注意:
    1.允许在三个系列表明符后,表明多少个雷同类其他变量。各变量之间用逗号
    间隔,类型表达符与变量名之间起码用三个空格间隔
    2.提及底一个变量名之后必得以“;”号最终
    3.变量表达必需在变量使用从前,常常放在函数体的开始部分

实型变量

(1卡塔尔国实型变量实型数据在内存中的存放方式

  • 实型数据貌似占4个字节。按指数情势积攒。
    |符号位 |小数部分 |指数部分 |
    小数部分占的位愈来愈多,数的立竿见影数字越来越多,精度越高
    指数部分占的位数越来越多,数能代表的限量越大。

    (2卡塔尔实型变量的分类
  • 单精度(float卡塔尔国,双精度(double型卡塔尔国,长双精度(long double型卡塔尔国三类

3. 实型量

  1. 实型常量:实型也可以称作 浮点型;实型常量也称之为实数也许浮点数;十进制数情势和指数情势
    1) 十进制数情势:由数量 0~9 和小数点组成
    2)
    指数情势:由十进制数,加阶码标记“e”或“E”以至阶码组成(其貌似情势为a E
    n (a为十进制数,n为十进制整数卡塔尔其值为 a10,n 如: 2.1E5
    (等于2.1
    10,5))
  2. 实型变量:单精度型和双精度型
    1) 单精度表达符:float
    在C中单精度型占4个字节(三拾一个人)内部存款和储蓄器空间,其数值范围为3.4E-38~3.4E+38,只好提供四个人有效数字;
    2) 双精度表明符:double
    双精度型占8个字节(60个人)内部存款和储蓄器空间,其数值范围为1.7E-308~1.7E+308,可提供拾几人有效数字
    3) 实型变量表达的格式和书写规格与整型雷同

字符变量

字符数据在内部存款和储蓄器中的贮存情势及接纳办法。
各样字符变量被分配二个字节的上空,因而不能不寄存四个字符。字符值是以ASCII码的款型贮存在内部存款和储蓄器单元中的。

#include <stdio.h>
int main()
{
    char a,b;
    a = 120;
    b = 121;
    printf("%c,%cn",a,b);
    printf("%d,%dn",a,b);
    return 0;
}

a=x b=y
a=120 b=121

4. 字符型量

  • ##### 字符常量满含字符常量和字符变量
  1. 字符常量:是用单引号括起来的贰个字符。’a’ ‘b’ ‘+’ ‘?’
    都是官方的字符常量
    1) 字符常量只可以用单引号括起来,不能够用双引号或任何括号
    2) 字符常量只好是个单个字符,无法是字符串
    3) 字符能够是字符集大肆字符,但数字被定义为字符后就不能参入数值运算
  2. 转义字符:转义字符以反斜线””初阶,后跟多个或多少个字符
转义字符 转义字符的意义
n 回车换行
t 横向跳到下一制表位置
v 竖向跳格
b 退格
r 回车
f 走纸换页
反斜线符""
单引号符
a 鸣铃
ddd 1~3位八进制数所代表的字符
xhh 1~2位十六进制数所代表的字符
  1. 字符变量:的取值是字符常量,即单个字符。字符变量的档案的次序表明符是
    char。
    1)
    如x的十进制ASCII码是120,y的十进制ASCII码是121。对字符变量a,b付与’x’和’y’值:
    a=’x’;b=’y’;实际上是在a,b八个单元内部存款和储蓄器放120和121的二进制代码: a 0 1
    1 1 1 0 0 0
         b 0 1 1 1 1 0 0 1
  2. 字符串常量:是由意气风发对双引号括起的字符系列,”charn”
    “REBT”;字符串常量和字符常量是莫衷一是的量:
    1) 字符常量由单引号 括起来,字符串常量由双引号 括起来
    2)
    字符常量只好是单个字符,字符串常量则足以含一个或多少个字符
    3)
    能够把三个字符常量赋值三个字符变量,但无法把一个字符串常量给与一个字符变量;但是足以用一个字符数组来存放一个字符串常量
    4) 字符常量占贰个字节
    的内部存款和储蓄器空间,字符串常量占的内部存款和储蓄器字节数等于字符串字节数加1,扩张的三个字节存放字符””,那是字符串甘休的标识
  3. 标识常量:能够用三个标记符来表示一个常量,在应用前必需先定义,其情势:
    #define 标志符 常量(宏定义命令)

字符串常量和字符常量是见仁见智的量.他们有以下分别

  • 字符常量是由单引号括起来的,字符串常量是由双引号括起来的
  • 字符常量只可以是单个字符,字符串常量则带有二个火多少个字符.
  • 能够啊八个字符常量付给叁个字符变量,但无法把一个字符串常量付给三个字符变量.在C语言中平昔不对应的字符串变量。大家用一个字符数组在寄存贰个字符变量。
  • 字符占二个字节的内部存款和储蓄器空间.字符串常量占的内部存款和储蓄器字节数等于字符串中的字节数加朝气蓬勃.扩充的二个字节用于寄存字符’’,那是字符串的甘休标识。

5. 变量的伊始值和类型转换

  1. 变量赋初值:平常须要对变量赋初值,以便利用变量;
    项目表明符 变量1 = 值1, 变量2 = 值2···;

<wiz_code_mirror>

 

 

 

 

 

1 int a = 4, b = 2;
2 char = ch1 = 's', ch2 = 'a';
3 int a = b = c = 4;        // error 不允许连续赋值

 

 

 

  1. 变量类型的转变:变量的数据类型是能够调换的,自动转变 和
    强制转变
    1)
    机动转变:产生在差异数据类型的量在混合运算时,由编写翻译系统自动达成,准则:
    · 若插手运算量的门类分歧,则先转变来联合类型,然后开展演算
    · 转换按数据长度增添的样子开展,以确定保证精度不减少。如
    int型和long型运算时,先把int量转成long型后在进展演算
    ·
    全体的浮点运算都以以双精度进行的,尽管仅含float单精衡量运算的表明式,也要转成double型,再做运算
    · char型和short型到场运算时,必得先转换成int型
    ·
    在赋值运算中,赋值号两侧量的数据类型不一致的时间,赋值号右侧量的门类将改造为侧面量的连串,要是侧面量的数据类型长度左侧长时,将错失大器晚成部分多少,那样会下落精度,遗失的风流浪漫部分按四舍五入向前舍入
    2) 强制调换:是经过类型转换到完毕的,平日格局:(类型表明符)
    (表明式)
    其功能是把表明式的演算结果强制转换来类型表达符所表示的花色;
    譬如说:(float) a 把a转变为实型; (int) (x+y)
    把x+y的结果运算结果强制转换为整型
    · 类型表达符和表达式都非得加括号(单个变量能够不加括号卡塔尔,
    ·
    无论是强制转换或是自动转变,都只是为了此番运算的急需而对变量的数量长度举办的暂且转换,而不改变数量注脚时对该变量定义的门类

每一样数据类型的混合运算

(1) 若出席运算量的门类差别,则先转变到同大器晚成档期的顺序然后开展运算.
(2)调换按数量长度扩大的矛头扩充,以保障精度不下落,如int与long运算时,先把int转变为long,然后开展览演出算。
(3)全数的浮点型运算都以以双精度进行的,即便仅含float单精度量运算的表明式,也要先转移为double型,然后进行演算。
(4)char型和short运算时,必得先转移为int
(5)在赋值运算时,赋值号两侧量的数据类型差别一时间,赋值号侧面的量的类型调换为侧面量的类型.若是右侧量的数据类型长度当先左侧的,则会丢弃意气风发部分数额,那样会骤降精度,错失的一些四舍五入.

![Upload Paste_Image.png failed. Please try again.]

6. 主导运算符和表明式[1]

  1. 优先级和结合性:运算符的运算优先级分为15级,优先级较高的早日优先级低的扩充览演出算,而在二个运算量两则的运算符优先级雷同有的时候候,则按运算符的结合性:即左结合性(自左向右)
    右结合性(自右向左)
  2. 算术运算符和算术说明式基本的算术运算符
    1) 加法运算符”+”
    :双眼运算符,即应当三个量参加加法运算,拥有右结合性
    2) 减法运算符”-“
    :双眼运算符,但’-‘也可看做负值运算符,那个时候为单目运算符,具备左结合性
    3) 乘法运算符” * “ :双眼运算符,具备左结合性
    4) 除法运算符”/”
    :双眼运算符,参加运算量均为整型时,结果也为整型,舍去小数;如果运算量中有八个是实型,则结果位双精度实型,具备左结合性
    5) 求余运算符”%”
    :双眼运算符,须求到场运算的量均为整型,求余运算的结果至极两数相除后的余数,具备左结合性
  3. 自增自减运算符:自增1运算符记为”++”,其职能是使变量的值自增1,自减1运算符记为”–“,其效果是使变量值自减1;自增1,自减1运算符均为单目运算符,具备右结合性
    · ++i i自增1后再出席别的运算
    · –i i自减1后再参预其余运算
    · i++ i参加运算后,i的值再自增1
    · i– i到场运算后,i的值再自减1
  4. 算术表明式:由算术运算符和括号连接起来的姿势,例如:
    (a2)/c (x+r)8-(a+b)/7  ++i sin(x)+sin(y)  (++i)-(j++)+(k–)

  5. 赋值运算符和赋值表达式:轻便的赋值运算符记为”=”。由
    “=”连接的姿态称为赋值表达式,情势:变量 =
    表明式;赋值表达式的意义是计量表明式的值再付与左侧的变量。赋值运算符具备右结合性。由此a=b=c=5 可领略为 a=(b=(c=5))

  6. 复合赋值符及表达式:在赋值符”=”早先拉长其他双眼运算符可构成复合赋值符;构成复合赋值表明式的格局:变量
    双眼运算符 = 表达式
    它等效于 变量 = 变量 运算符 表达式

  7. 逗号运算符:”,”
    其效果是把七个表明式连接起来组成三个表明式,平日情势:表达式1,表达式2···

强制类型转变

  • 强制类型转变是通过类型转换运算来落到实处的。
  • 其貌似格局为:
    (类型表明符卡塔 尔(阿拉伯语:قطر‎(表明式卡塔 尔(阿拉伯语:قطر‎
    其效力是啊表达式的运算结果强制转变来类型表达符所表示的项目
    int a;
    (float) a; //把a转换为实型
    (int) (x+y) //把x+y的结果转变为整型
    注意:
    (1卡塔尔国类型说明符和表明式都一定要加括号(单个变量能够不加卡塔 尔(阿拉伯语:قطر‎,
    (2卡塔 尔(阿拉伯语:قطر‎无论是强制类型转换照旧机关调换,都只是为着此次运算的需求对变爱玲的数码长度进行不时替换,实际不是改动变量的品种。

小结

  • C的数据类型:
    主题类型 构造类型 指针类型 空类型
  • 基本项目标分类及特色:
类型说明符 字节 数值范围
字符型 char 1 C字符集
基本整型 int 2 -32768~32767
短整型 short int 2 -32768~32767
长整型 long int 4 -214783648~214783647
无符号型 unsigned 2 0~65535
无符号长整型 unsigned long 4 0~4294967295
单精度实型 float 4 3/4E-38~3/4E+38
双精度实型 double 8 1/7E-308~1/7E+308
  • 常量后缀:
    L或l 长整型
    U或u 无符号数
    F或f 浮点数
  • 常量类型:
    莫西干发型 长整数 无符号数 浮点数 字符 字符串 符号常数 转义字符
  • 数据类型调换:
    ·
    自动调换:在不一致种类数据的混杂运算中,由系统活动达成转移,由少字节类型向多字节类型转变。不相同门类的量互相赋值时也由系统活动进行退换,把赋值号左侧的类型调换为左边的项目
    · 强制调换:由强制转变运算符完了改换
  • 运算符优先级和结合性:
    相同来说,单目运算符先行级较高,赋值运算符事先级低;算术运算符优先级较高,事关和逻辑运算符先行级相当的低;许多运算符具有左结合性,单目运算符,三目运算符、赋值
  • 表达式:
    是由运算符连接常量、变量、函数所结合的架势。每种表达式都有一个指和类型。表明式求值按运算符的优先级和结合性所规定的各种进行~~~~
admin

网站地图xml地图