C语言基础语法-教案03(从小白到劝退)

本文探讨了编程中的类型转换,包括隐式转换和强制转换,以及它们如何在数据操作过程中临时改变数据类型以确保精度。同时强调了整型数据尺寸的系统依赖性和可移植性整型(如typedefint32_t和int64_t)的重要性,以提高代码的跨平台兼容性。

 类型转换

  • 概念:不一致但相互兼容的数据类型,在同一表达式中将会发生类型转换。
  • 转换模式:
    • 隐式转换:系统按照隐式规则自动进行的转换
    • 强制转换:用户显式自定义进行的转换
  • 隐式规则:从小类型向大类型转换,目的是保证不丢失表达式中数据的精度

隐式转换示例代码

char  a = 'a';
int   b = 12;
float c = 3.14;
float x = a + b - c; // 在该表达式中将发生隐式转换,所有操作数被提升为float
  • 强制转换:用户强行将某类型的数据转换为另一种类型,此过程可能丢失精度
char  a = 'a';
int   b = 12;
float c = 3.14;
float x = a + b - (int)c; // 在该表达式中a隐式自动转换为int,c被强制转为int
  • 不管是隐式转换,还是强制转换,变换的都是操作数在运算过程中的类型,是临时的,操作数本身的类型不会改变,也无法改变。

数据类型的本质

  • 概念:各种不同的数据类型,本质上是用户与系统对某一块内存数据的解释方式的约定。
  • 推论:
  1. 类型转换,实际上是对先前定义时候的约定,做了一个临时的打破。
  2. 理论上,可以对任意的数据做任意的类型转换,但转换之后的数据解释不一定有意义

整型数据尺寸

  • 概念:整型数据尺寸是指某种整型数据所占用内存空间的大小
  • C语言标准并未规定整型数据的具体大小,只规定了相互之间的 “ 相对大小 ” ,比如:
    • short 不可比 int 长
    • long 不可比 int 短
    • long 型数据长度等于系统字长
  • 系统字长:CPU 一次处理的数据长度,称为字长。比如32位系统、64位系统。
  • 典型尺寸:
    • char 占用1个字节
    • short 占用2个字节
    • int 在16位系统中占用2个字节,在32位和64位系统中一般都占用4个字节
    • long 的尺寸等于系统字长
    • long long 在32位系统中一般占用4个字节,在64位系统中一般占用8个字节
  • 存在问题:
    • 同样的代码,放在不同的系统中,可能会由于数据尺寸发生变化而无法正常运行
    • 因此,系统标准整型数据类型,是不可移植的,这个问题在底层代码中尤为突出

可移植性整型

  • 概念:不管放到什么系统,尺寸保持不变的整型数据,称为可移植性整型
  • 关键:typedef
typedef int int32_t; // 将类型 int 取个别名,称为 int32_t
typedef long int64_t;// 将类型 long 取个别名,称为 int64_t
  • 思路:
  1. 为所有的系统提供一组固定的、能反应数据尺寸的、统一的可移植性整型名称
  2. 在不同的系统中,为这些可移植性整型提供对应的 typedef 语句

系统预定义的可移植性整型:

int8_t
int16_t
int32_t
int64_t

uint8_t
uint16_t
uint32_t
uint64_t

pid_t
time_t
size_t
... ...

计算机程序设计(C语言教案 " "计算机 "总学时 " " "程序设计 " " " " " " " " " " " " " " "简要回 "讲解实验四 "通过讲解实 " "顾 "复习printf和scanf函数,getchar()和putchar函数的用"验四回顾顺 " " "法 "序结构程序 " " " "设计方法 " "阐述主 "关系运算符和关系表达式 "强调重点和 " "题 "逻辑运算符和逻辑表达式 "难点 " " "条件运算符 " " " "if句(重点、难点) " " " "switch句(重点、难点) " " "关系运 "关系运算实际上是比较运算,两个值进行比较,判断比较 "强调关系运 " "算符和 "的结果是否符合给定的条件,如果符合比较的结果为真, "算符中等于 " "关系表 "否则结果为假。 "用==表示, " "达式 "用关系运算符将两个表达式(可以是算术表达式、关系表"注意与=的区" " "达式、逻辑表达式、赋值表达式、字符表达式)连接起 "别 " " "来的式子叫关系表达式。 " " " "关系运算符与其它运算符的优先次序。 " " " "C语言提供六种关系运算符: " " " " < 小于 " " " " <= 小于等于 " " " " > 大于 " " " " >= 大于等于 " " " " == 等于 " " " " != 不等于 " " "逻辑运 "用逻辑运算符将关系表达式或逻辑量连接起来就是逻辑 "强调在逻辑 " "算符和 "表达式。 "表达式的求 " "逻辑表 "逻辑运算符与其它运算符的优先次序。 "解中,并不是" "达式 "逻辑表达式的值应该是一个逻辑量"真"或"假",以数值"1"所有的逻辑 " " ""或"0"表示.而在判断一个量是否为"真"时,以"0"代表假"运算都被执 " " ",以非"0"代表真。 "行。 " " "在逻辑表达式的求解中,并不是所有的逻辑运算都被执行" " " "。 " " " "&&逻辑与 " " " "" "逻辑或 " " " "!逻辑非 " " "实例分 "例:满足下列一个条件即为闰年: 能被4整除,不能被100"通过课堂提 " "析 "整除 能被4整除,又能被400整除. "问,引导学 " " "(year%4= =0&&year%100!=0) " " year%400= =0 "生参与思考 " " "!((year%4= =0&&year%100!=0) " "year%400= =0) " " " "(year%4!=0) " "(year%100= =0&&year%400!=0) " " "条件运 "格式:表达式1?表达式2:表达式3 "强调条件运 " "算符 "条件运算符要求有三个操作对象,称三目运算符,它是c"算符要求有 " " "语言中唯一的三目运算符。 "三个操作对 " " "条件表达式 max= (a>b)? a:b 相当于 "象,是三目 " " "if (a>b) max=a; else max=b; "运算符 " " "说明: " " " "条件运算符的执行顺序 " " " "条件运算符的优先级别,仅高于赋值运算 " " " "条件运算符的结合方向为右结合性 " " " "条件表达式不能取代if句 " " " "条件表达式中的表达式类型可以不同 " " "实例分 "例:编程,输入一个字符,若是大写就转换成小写;若 "通过例题体 " "析 "不是就不转换,输出字符。main(){char "会条件运算 " " "a;scanf("%c",&a);if (a>='A'&&a<='Z') "符的使用 " " "a=a+32;printf("%c",a);} " " " "//a=(a>='A'&&a<='Z')?a+32:a; " " " "} " " "if "if句是用来判定是否满足所给定条件,根据判定结果( "分析if句 " "句( "真或假)决定执行给出的两种操作之一。 "的三种形式 " "重点、 "if句的三种形式: " " "难点) " if (表达式) 句 " " " " if (表达式) 句1 else 句2 " " " " if (表达式1) 句1 " " " "else if (表达式2) 句2 " " " "else if (表达式3) 句3 " " " "...... " " " "else if (表达式n) 句n " " " "else 句n+1 " " "if句 "在if句的内部使用if句,例如: "if句的嵌 " "的嵌套 "if ( )if ( ) 句1else if ( ) 句2else 句3 "套,注意与i" " " "f句的三种" " " "形式的区别
C语言教案 环节完整 谭浩强版 含首卡尾卡,教案附页 WORD看版 表格式 是一个字一个字,一个格一个格输入的,费时费力啊。 让你轻松迎接教学检查 把有限的精力,投入到无限的娱乐中 试发一科,效果好,再发其它。 时间 教 学 过 程 (含 教 师 的 教 学 行 为 及 学 生 的 学 习 行 为) 教 学 手 段 及 教 具 2′ 3′ 2′ 10′ ′ (一)组织教学 (二)新学期要求 (三)新课导入 导: C语言是国际上广泛流行的高级语言,它适合作为系统描述语言,既可用来编写系统,也可用来编写应用软件。 新课: 第一章 C语言概述 教学目标:了解C语言的发展、特点、C程序的结构及C程序的上机步骤 教学重点:C程序的上机步骤 教学难点:C程序的上机步骤 §1.1C语言出现的历史背景 一、 C语言的发展 C语言是在B语言的基础上发展起来的。20世纪70年代初由美国贝尔实验室的Dennis M. Ritchie 设计的,是为描述和实现UNIX操作系统。1973年, K.Thompson和Dennis M. Ritchie两个人合作把UNIX的90%以上内容用C语言进行了改写, 即UNIX V。ANSI于1983年成立了专门定义C语言标准的委员会,花了6年时间使C语言迈向了标准化 1975年,随着UNIX第六版的推出和OOP技术的出现,C语言的突出优点引起普遍关注。 1989年ANSI C标准被采用,定义为C89。 1995年,出现了C的修订版,出现了初步的C++,C89成了C++的子集。 1999年又推出了C99,目前C语言版本主要有MS C/C++, Turbo C, VC++等。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值