第2章 C程序设计的初步知识

目录

2.1简单C语言程序的构成和格式

2.2标识符、常量和变量

2.2.1标识符

2.2.2常量

2.2.3符号常量

2.2.4变量

2.3整形数据

2.3.1整型常量

2.3.2整形变量

2.3.3整形数据的分类

2.3.4整数在内存中的存储格式

2.4实型数据

2.4.1实型常量

2.4.2实型变量

2.5算数表达式

2.5.1基本的算数运算符

2.5.2运算符的优先级、结核性和算术表达式

2.5.3强制类型转换表达式

2.6赋值表达式

2.6.1赋值运算符和赋值表达式

2.6.2复合赋值表达式

2.7自加、自减运算符和逗号运算符

2.7.1自加运算符“++”和自减运算符“++”

2.7.2逗号运算符和逗号表达式


2.1简单C格式语言程序的构成和格式

C语言规定必须用main作为主函数名,如

main(){}

程序中的main()是函数的起始行,也是C程序执行的起始行。(main函数后面的圆括号可以为空,但不能不写)

每一个可执行的 C程序必须且只能有一个主函数。

用花括号{ }括起来的部分为函数体。

定义语句用分号;结束。C程序中的每一条执行语句都必须用分号结束,分号是C语句的一部分,不是语句之间的分隔符。

在/* */内的内容为注释,其中的内容会被编译器忽略不会执行,但可以增加程序的可读性。

命令行必须用#开通,行尾不能加;,它不是C程序中的语句。

2.2标识符、常量和变量

2.2.1标识符

大写字母和小写字母会被认为是两个不同的字符。

(1)关键字:已有专门的用途,不能再用作变量名或函数名。

(2)预定义标识符:C语言预先定义并具有特定含义的标识符,不建议另作他用。

(3)用户标识符:由用户根据需要定义的标识符成为用户标识符,尽量选择具有一定含义的英语单词或汉语拼音作为标识符。

2.2.2常量

常量就是指在程序运行过程中,其值不能被改变的量。

2.2.3符号常量

在C语言程序中,可以用一个符号名来代表一个常量,称为符号常量,如

#define 符号名 常量 

意为定义符号名为常量。

凡是本程序中出现这个符号名均已这个常量替代。

define为命令行,必须用#开头且结尾不能有;

2.2.4变量

变量是指在程序中其值可以改变的量。

变量实质上代表了内存中的若干个存储单元。

在C语言中,所有的变量必须先定义后使用。

2.3整形数据

2.3.1整型常量

整形常量可以用十进制,八进制,十六进制等形式展示。

十进制数:一串连续的数字表示。(前面不能随便添加数字0)

八进制数:一串合法的八进制数,开头必须是数字0.

十六进制数:用数字0和字母x开头,其中a.b.c.d.e.f和x用小写也可以用大写。

在C程序中,只有十进制数可以是负数,而八进制数和十六进制数只能是整数。

2.3.2整形变量

整型变量可以分为基本型、短整型、长整型、无符号型四种。

编译程序仅为开辟存储单元,而没有在存储单元中存放任何初值,此时变量中的值是无意义的,称变量值“无定义”。

C语言规定,可以在定义变量的同时给变量赋初值,也称变量的初始化。

2.3.3整形数据的分类

汉语名称类型名称占用字节数数值范围
(有符号)短整形[signed] int4-2147483648~2147483647
(有符号)短整型[signed] short [int]2-32768~32767
(有符号)长整型[signed] long [int]4-2147483648~214783647
无符号(整型)unsigned [int]40~4294967295
无符号短(整型)unsigned short [int]20~65535
无符号长(整型)unsigned long [int]40~4294967295

2.3.4整数在内存中的存储格式

内存储器的最小存储单位称为“位(bit)”。大多数计算机把八个二进制位组成一个“字节(byte)”。

通常把一个字节中最右边一位称为最低位,最左边一位称为最高位。在有符号数中,正整数最高位为0,负整数最高位为1.

(1)正整数:用“原码”的形式存放。

(2)负整数:以“补码”的形式存放。

原码:这个数的二进制形式。

反码:除了符号位以外取反。

补码:反码加1.

2.4实型数据

2.4.1实型常量

实型常量又称实数或浮点数。

(1)小数形式:必须要有小数点。

(2)指数形式:字母e或E之前必须要有数字,后面的指数必须为整数且不能插入空格。(字母e或E后面的数表示前面的小数点移动几位,正数向前移动,负数向后移动)

2.4.2实型变量

实型变量单精度型双精度型
类型名称floatdouble
占用字节数48
有效数字715~16
精度-10^38~10^38-10^308~10^308

在内存中,实数一律以指数形式存放的。

计算机可以精确地存放一个整数,但数值范围较小,实型数值范围较大,但会有一定误差。(尽量不要判断两个实行数值的大小,因为误差的的存在,一般不会完全相同)

2.5算数表达式

2.5.1基本的算数运算符

基本的算数运算符有:+、-、*、/(取商)、%(去余数)均为双目运算符(必须有两个对象)

除了%必须是整数以外,其他的整数实数都可以。

2.5.2运算符的优先级、结核性和算术表达式

()+-*/%+-
        单目                         双目
        同级        同级     同级
                                              左高右低

只有单目运算符的结合性是从右往左的,其余的运算符的结合性都是从左往右的。

(1)在算数表达式中,可使用多层圆括号,但左右括号不许配对。

(2)有不同优先级的运算符时,优先级从高到低进行,优先级相同时,从左到右依次计算。

2.5.3强制类型转换表达式

强制类型转换表达式形式如下

(类型名) (表达式)

2.6赋值表达式

2.6.1赋值运算符和赋值表达式

= 为赋值运算符,由赋值运算符组成的表达式称为赋值表达式

变量名=表达式

每附一次值,与他相应的存储单元中的数据就被更新一次,内存中当前数据就被更新一次,内存中当前的数据就是最后一次所赋的那个数据。

说明:

(1)赋值运算符的优先级只高于逗号运算符,比任何其他运算符的优先级都低。

(2)赋值运算符不是数学中的等于,这不是等同的关系,而是将表达式的值赋予一个变量

(3)赋值表达式x=x并没有实际意义

(4)表达式n=n+1也是和合法的表达式,即把n的值加一后重新赋值给n

(5)赋值运算符的左侧只能是变量,不能是常量和表达式。

(6)在C语言中,= 被视为一个运算符。

2.6.2复合赋值表达式

n+=1      等价于      n=n+1

n-=1       等价于      n=n-1

n*=1       等价于      n=n*1

n/=1       等价于      n=n/1

n%=1     等价于      n=n%1

(这两个符号之间不能有空格)

2.6.3赋值运算中的类型转换

在赋值运算中,只有在复赋值号右侧表达式的类型与左侧变量完全一致时,赋值操作才能进行。

如果不同时,转换规则如下:

(1)一个是短整型,一个是长整型,,则将短整型转换为长整型。

(2)一个是有符号整型,一个是无符号整型,则将有符号整型转换为无符号整型。

(3)赋值号右边的值先转换成与赋值号左边的变量相同的类型。

(4)短整型变量只能接受长整型数低位上两个字节中的数据,高位上两个字节中的数据将丢失。

(5)赋值号左边的变量为有符号整型,右边的值为无符号整型时,若符号位为1,将按负数处理。

2.7自加、自减运算符和逗号运算符

2.7.1自加运算符“++”和自减运算符“++”

(1)自加运算符“++”和自减运算符“++”的运算结果是使运算对象的值加1或减1。

(2)运算符“++”和“--”是单目运算符。

(3)运算符“++”和“--”的结合方向是“自右向左”

2.7.2逗号运算符和逗号表达式

“,”是C语言提供的一种特殊运算符,用逗号将表达式连接起来的式子称为逗号表达式。

逗号表达式的一般形式为:

表达式1,表达式2,...,表达式n

说明:

(1)逗号运算符的结合性是从左往右的。

(2)在所有运算符中,逗号运算符的优先级最低。

  • 17
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值