第4章C语言的复合数据类型.
a[0] a[1] a[2] a[3] a[4]
pa
pa+2
图4-10 指向一维数组的指针变量示例
(3)二维数组和指针
二维数组的指针表示比较复杂,和一维数组不同的是,
数组名不再表示首地址,而是一个指向存放首地址的地
址。 假设有二维数组b:
b[M][N]
该二维数组的首地址为*b,或b[0],第1个元素的值为 元素的地址**b,或为*b[0]。
int *ip2 = &ival;
ip1 = ip2; // ① 注意:指针不能被赋予不是地址的值,也不能被赋予与
该指针类型不同的其他类型的对象的地址,这些都会导致
编译错误。有一个特例,空指针能够被赋予任何类型的对 象的地址。
5. 指针的使用
指针能够被用来作为函数参数,传递数组或类对象,或 者管理动态分配的变量和对象,最典型的用法是构造链表
和树。
通过解引用运算符“ * ”能够间接访问指针所指向的对 象,例如: int a, *pa, b = 2032; pa = &a; *pa = b; // 通过赋初值使指针变量pa指向a // 将b的值赋给pa指向的变量,即a = 2032;
指针变量的本身也可以用于算术运算,常见的运算有:
(1)指针变量+整数
(2)指针变量–整数 (3)指针变量++ ++指针变量 指针变量-- --指针变量
(4)指针变量1–指针变量2
4.1.2 引用的定义和使用
1. 引用的概念
所谓引用,就是某一个变量或者对象的另一 个名字,所以又被称作“别名”。比如,唐朝
大诗人李白,字太白,“太白”二字就是李白 本人的一个引用。 引用不是变量,其本身没有值和地址,不能 占用任何的内存空间。其典型用法是用作函数 的形参和返回值。
在容器中删除元素的方法有:
erase (<删除元素的地址>); // 删除一个元素 erase (<删除元素的起始地址>, <终止地址>);
可以用下标运算符来访问vector容器的元素。但是,
更常用的是使用类似指针的迭代器。 首先,要定义一个迭代器,例如:
vector <int>::iterator iter = ivec.begin();
4.1.3 数组的定义和使用
1. 数组的概念
数组是相同类型的数据的集合,其大小必须为某个固定 值。它为处理一组相同性质的数据提供了方便,而实际 上,很多问题如果离开了数组基本上是无法实现的。 例如: float cj[10] = {90, 83, 95, 93, 92.5, 100, 96.5, 84, 90, 76.5}
第4章 C++语言的复合数据类型
本章要点:
指针的定义和使用 引用的定义和使用 数组的定义和使用 vector容器的定义和使用 字符串的定义和使用 枚举的定义和使用
4.1 循序渐进学理论
4.1.1 指针的定义和使用
1. 指针的概念
指针变量是一种特殊的变量,用于保存某 个变量、对象或者函数的地址值。可以通过指
还可以用一个已经定义了的数组来初始化vector容器,格式 如下: vector <数据类型> <容器名> (<开始地址>, <结束地址>); 例如: int a[10] = {0,1,2,3,4,5,6,7,8,9}; vector <int> avec(a+2, a+5);
3. vector容器的使用
C++语言支持vector容器间的赋值和比较、元素的插
入和删除、容器容量和长度的查询等操作。
在容器中插入元素的方法是:
insert (<插入的地址>, <插入的数量>, <元素值>)
如果插入的数量为 1 ,则可以被省略。例如,在容器的 首部插入1个元素a: ivec.inset(ivec.begin(), a);
也可以定义一个常量指针,其自身是常量,不能被改变, 但是可以通过它指向其他的常量或者变量。常量指针的 定义看上去有些别扭,例如: const double *const dp1; double *const dp2;
4. 指针变量的赋值
指针在没有被赋值前是不能被使用的,给指针变量赋值 有三种形式:取地址符“&”赋值、指针间赋值和数组名或 者函数名赋值。C++语言规定“数组名”和“函数名”代 表数组或函数的地址。下面是一些为指针赋值的示例: int ival = 2938; int *ip1 = 0;
是否越界,在编写程序时,必须仔细检查数组的下标, 防止下标越界。
(2)一维数组和指针
C++ 语言规定,一维数组的数组名代表着该数组的首
地址,即第一个元素的地址。我们可以定义一个与数组 元素类型相同的指针,再将数组的首地址赋给它,然后
通过该指针读写数组中的元素。例如:
int a[5] = {0,1,1,2,3}; int *pa = a; // 定义一个指向数组a的指针 pa、a与数组的关系可用图4-10表示。
第i行第0列的元素的地址用指针表示为*(b+i),该行中
第j列元素的地址用指针表示为*(b+i)+j,那么,二维数组 元素b[i][j]的值用指针表示为*(*(b+i)+j)。
4.1.4 vector容器的定义和使用
1. vector容器的概念
在C++语言中,有两种面向对象的抽象容器类型── 顺序容器和关联容器。其中,顺序容器有 list和 vector 容 器,关联容器有map和set容器。 和数组相同的是, vector 容器占用一段连续的内存存 储空间,顺序存放每一个vector元素,不同的是,vector 容器没有固定的长度,当长度超过容器的容量时,系统 为它分配双倍于当前容量的存储空间,把当前的元素拷 入新的存储区。 为了使用vector,在程序中必须包含头文件vector:
#include <vector>
2. vector容器的定义和初始化
vector容器的定义格式如下:
vector <数据类型> <容器名>;
例如:vector <int> month_days; 可以定义一个已知长度的vector容器,并为它赋以初值, 格式如下: vector <数据类型> <容器名> (<长度>, <初值>); 例如:vector <int> month_days(12, 30); // 12个int类型元素,每 个元素的初始值为30。
而不是具体的数据,编译器只能根据指针的数据类型来
决定如何操作该指针指向的数据。
3. 指向常量的指针和常量指针的定义
指向常量的指针本身并不是常量,而是指向一个常量对
象,通常用作函数的形参,确保传递给函数的对象在函 数体内不会被改变。 例如:
const double *dp; // dp是指向double型常量的指针
需要注意的是,并不是任何时候都可以省略子括号的,当
部分赋值时,子括号的省略会引起混乱。
4. 数组的使用
对数组元素的操作有两种方式:一是通过下标运算符
“[ ]”来读写数组的元素,二是通过移动的指针来读写数
组的元素。 (1)下标运算符
采用下标运算符的数组元素的格式为:
<数组名>[<下标>]
注意:数组元素的下标从0开始。系统不会自动检查下标
3. 数组的赋值
(1)一维数组赋初值
可以用一组初值对一维数组进行初始化,这组初值放在 花括号“ {}”内,初值与初值之间用逗号“ ,” 隔开。例如: int a[5]={1, 2, 3, 4, 5}; // 为全部的元素赋初值
如果初值的数目N少于维数M,则用这些初值去 初始化数组中的前 N个元素,剩余的(M-N)个元 素会被自动赋予相应的初值。如果初值的数目N 多于维数M,则会导致编译错误。
指针和引用的区别:
(1)引用在定义时必须被初始化,而指针则可以随意; (2)指针可以被引用,但引用不能被引用;
(3)指针是变量,可以指向不同的变量或对象,而引用
必须始终指向某个变量或对象。
【例4-2】分析下列程序的运行结果。
#include "stdafx.h" #include <iostream> using namespace std; void main() { int ival = 2048, a = 256, *pi = &a; int &refVal = ival; int *&refPi = pi; ival ++; // ① cout << "refVal = " << refVal <<endl; refVal = a; // ② cout << "ival = " << ival<<endl; *refPi = 1024; // ③ cout << "a = " <<a<<endl; }
(2)二维数组赋初值
可以分行给二维数组中的元素赋初值,例如: int a[3][4]={{0,1,2,3},{4,5,6,7},{8,9,10,11}};
如果赋值的数值的数目少于数组的维数,即只给部分元
素赋初值,没有被显式赋初值的元素也会有初值,对于 数值型数组,其值为0,对于字符型数组,其值为‘\0’。 给多维数组赋值时,花括号中包含的子括号可以被省略, 例如: int a[3][4]={0,1,2,3,4,5,6,7,8,9,10,11};
C语言程序设计第4章
4.2.2 逻辑表达式
例:设a=3,b=4,x=0,y=0,求值: 结果:0 1、a < b && x > y 结果:1 2、a = = b || x = = y 3、! a || a > b 结果:0 4、! a && b || x > y 结果:0 5、int a=-1,b=1,c=2,d=3,m=5,n=2,k; k=(m=a+b)&&(n=c+d) k为0 ,m为0, n为2
当尝试对该程序进行编译时,C语言编译器会报告 "illegal else without matching if"的语法错误。 28
4.3.4使用if语句应注意的问题
void main() { int x; x=1; if(x==1) printf("x等于1\n"); else ; /*这里多加了个分号*/ printf("x不等于1\n"); }
if(表达式) 语句1 else 语句2
真 表达式 语句1 语句2 假
如果括号内的表达式为真,则执行括号后面的 语句1。如果表达式值为假,则执行else后面的 语句2;语句1和语句2只能有一个被执行。
21
4.3.2 else子句
【例4-2】输入两个整数,将较大者输出。 /*程序4-2*/ #include<stdio.h> void main () { int a, b, max; printf("Please input the data a and b:"); scanf("%d, %d",&a, &b); if(a>=b) max=a; else max=b; printf("The max is %d\n", max); }
单片机原理及应用教程(C语言版)-第4章 单片机C语言及程序设计
4.3.2 C51变量的存储类型
三、外部存储
外部(存储)变量:用extern声明的变量为外 部变量,是在其它文件定义过的全局变量。 用 extern声明后,便可以在所声明的文件中使用。
需要注意的是:在定义变量时,即便是全局变 量,也不能使用extern修饰。
4.3.2 C51变量的存储类型
四、寄存器存储
动态(存储)变量:用auto定义的为动态变量, 也叫自动变量。
作用范围:在定义它的函数内或复合语句内部 当定义它的函数或复合语句执行时,C51才为 变量分配存储空间,结束时所占用的存储空间释放。 定义变量时,auto可以省略,或者说如果省略 了存储类型项,则认为是动态变量。动态变量一般 分配使用寄存器或堆栈。
“C51”概念:为了与ANSI C区别,把“单片 机C语言”称为“C51”,也称为“Keil C”。
4.1.1 C语言编程的优势
在编程方面,使用C51较汇编语言有诸多优势: 1)编程容易 2)容易实现复杂的数值计算 3)容易阅读与交流 4)容易调试与维护 5)容易实现模块化开发 6)程序可移植性好
本 无符号整型 unsigned int 2字节 0~65535 有符号整型 signed int 2字节 -32768~32767
类 无符号长整型 unsigned long 4字节 0~4294967295
型 有符号长整型 signed long 4字节 -2147483648~2147483647
MCS-51单片机有四个存储空间,分成三类, 它们是片内数据存储空间、片外数据存储空间和 程序存储空间。
MCS-51单片机有更多的存储区域:由于片内 数据存储器和片外数据存储器又分成不同的区域, 所以单片机的变量有更多的存储区域。
第4章单片机C语言1
变量:在程序运行中其值可以改变的量。
定义一个变量,编译系统就会自动为它安排一个存贮区,具体的 地址值 ,用户不必在意。一个变量由变量名和变量值构成. 变量名:存贮单元地址的符号表示。 变量的值:变量所在地址单元存放的内容。
Microcontroller 单片机的C语言 05
数据类型:数据的长度。 无论哪种数据都是存放在存贮单元中的,每一个数据究竟要占用几 个单元,都要提供给编译系统,正如汇编语言中存放数据的单元要用DB、 DW、DD伪指令进行定义一样。
Microcontroller 单片机的C语言
10
4.3.2
在固定的存贮器地址进行变量参数传递是C51的一个标准特征,定 义了变量、参数传递区的存贮器模式,也就是默认了变量和参数传递 区存贮器类型、无需再对变量和参数传递区的存贮器类型进行说明。 存贮器模式决定了变量的默认存贮器类型、参数传递区和无明确存 贮区类型的说明。有三种存贮器模式:SMALL、LARGE 和 COMPACT。
Microcontroller 单片机的C语言
14
下面表格表示两种语言将m单元的内容送n单元的对照语句: 直接寻址
汇编语言 MOV n,m 传送语句 C 语言 n=m; 赋值语句 汇编语言 MOV R1,#m ; m的地址送R1 MOV n,@R1 ; m单片机的C语言
04
4.2 C51的数据类型
C51的数据有常量和变量之分。 常量:在程序运行中其值不变的量。 数值型常量:可以为十进制数、 十六进制数( 用0x表示)和字符 (用‘ ’ 引号括起)。 符号型常量:用符号表示常量,此符号需用宏定义指令(#define)对 其进行定义(相当于汇编的‚EQU‛伪指令)。 如:#define PI 3.1415那么程序中只要出现PI的地方,编译 程序都译为3.1415。
C语言第4章-分支结构.
§【源程序】 §main( ) §{ int grade; printf ( "input the grade:"); § scanf ("%d",&grade); § if (grade>=90) printf("A\n"); § else if(grade>=80) printf("B\n"); § else if(grade>=70) printf("C\n"); § else if(grade>=60) printf("D\n"); § else printf("E\n"); §}
§2.添break、可跳出。见下节
【例呢?
§ //百分制成绩的等级划分问题之解法3(不完善):
§ main( )
§ {int grade; printf("input the grade:");
§ scanf("%d",&grade);
§ switch(grade/10) //按单值匹配,故要将范围映射为单值
§4.各个case子句出现的次序对执行结果没任 何影响,即顺序可以任意布局。
§5.每一个case能够拥有一条或多条语句,其最大的 不同之处在于使用多条语句时不需要用“{}”括起来。
§6.多个case可以共用一组执行语句。例如:
§
┆
§
case ‘A’:
§
case ‘a’: ++count ; break ;
§
第4章 C语言程序的基本控制结构
#include<stdio.h> main() { int c1,c2; scanf("%c",&c); c1=c-1;c2=c+1; printf("%c%4c%4c\n",c1,c,c2); printf("%d%4d%4d\n",c1,c,c2); }
4.2 顺序结构
运行结果:
4.3选择结构
入口
入口
A 语句1 B
真
表达 式
假
条件 语句2 循环体
出口
图4.1 顺序结构
出口 出口
图4.2 选择(分支)结构 图4.3 循环结构
上述三种基本控制结构的共同特定是具有单入口和单出口。 还有一种goto语句,又叫转向语句,在本章的4.4.5小节中将会讲解到。 我们在编写程序时,力求使用前三种基本结构语句。
4.3选择结构
例4.3 幼儿园里三个小朋友站队要求小个站在前面,高个站在后面。 分析:我们可以把个子最小的小朋友放在a位置上,较高的小朋友放在b位 置上,个子最高的小朋友放在c位置上。输入三个数,a,b,c,要求按由小到 大的顺序输出。先比较a和b,若a大于b,则a与b对换,再比较a和c,若a 大于c,则a与c对换,这时a的值是最小的,最后比较b和c,若b大于c,则b 与c对换。这样操作之后就使a<b<c的关系成立。然后顺序输出a,b,c既可。
! 逻辑非,单目运算符,自右至左结合。其运算规则是:当 运算量为0,运算结果为1;反之,当运算量为1,运算结果为0。 && 逻辑与,双目运算符,自左至右结合。其运算规则是: 只有当运算符两边的运算量都是非0时,运算结果才为1,否则为0。 || 逻辑或,双目运算符,自左至右结合。其运算规则是:只 要运算符两边的运算量有一个为为非0,运算结果就为1。只有两 个运算量都为0,结果才是0。 这三个运算符的优先级,逻辑非!最高,逻辑与&&次之,逻 辑或||最低。!(逻辑非)的优先级高于算术运算符和关系运算符, 而&&(逻辑与)和||(逻辑或)的优先级低于算术运算符和关系运算符。 由 此可见: a>b&&c>d 相当于 (a>b)&&(c>d) a= =0||b= =0 相当于 (a= =0)||(b= =0) !a&&b= =c 相当于 (!a)&&(b= =c)
第04章 数组
第4章
数
组
第 四 章
数 组
1
高 级 语 言 程 序 设 计 与 应 用 教 程
第4章:数 组
学习的意义
到目前为止,我们已经讨论了C语言中的基本数据类型, 如果用基本数据类型来定义某些变量,那么这些变量在内存 中将占用各自的内存单元,变量之间的制约关系无法体现, 不能表现出这些变量之间的关联性,看不出它们之间有任何 构造数据类型之一 有没有更好的方法来 的联系,我们把这些变量称之为‚离散变量‛,对它们的访 数组:把具有相同类型的若干变量按有序的形式 问只能通过变量名逐一进行 。 解决呢? 组织起来的集合,用数组名标识。 有!就是用数组来编程。 下面来思考一个问题:如何编程来实现对100个数进行排序呢? 数组元素:数组中的变量。用数组名和下标确定, 具有相同的名字,但有不同的下标。 解题思路: 太复杂了! 定义100个整型变量来 晕!!! 分别存放这100个整数,然 后再对这些变量的值进行比 较、交换等操作 。
//超出了数组的大小
(3) 只能给元素逐个赋值,不能给数组整体赋值。 例 int a[5] = {1, 1, 1, 1, 1}; 不能简化为: int a[10] = 1; ×
第 四 章
数 组
14
高 级 语 言 程 序 设 计 与 应 用 教 程
初始化赋值说明:
(4) 如果表达式的个数小于数组的大小,则未指定值的 数组元素被赋值为0;
4
高 级 语 言 程 序 设 计 与 应 用 教 程
第 四 章
4. 类型名int说明a数组中的10个数组元素都是整型,在每个 数组元素中只能存放整型数据。数组的类型实际上是指数 组元素的取值类型。对于同一个数组,其所有元素的数据 类型都是相同的。 5. 数组定义后, C语言的编译系统将给其分配一定大小的内 再例如: 存单元,其所占内存单元的大小与数组元素的类型和数组 float f[20]; //定义了有20个数据元素的float型数组f 的长度有关。上例中,系统为a数组在内存中开辟一段连 char str1[10], str2[20]; //定义了有10个和20个数据元素的char型 续的存储单元,如图所示。在图中标明了每个存储单元的 数组str1和str2 名字,可以用该名字直接引用每个存储单元。a数组在内 存中一共分配了10个int型的存储单元,而每个int型数据 占用4个字节(VC6.0),所以,a数组一共占用了40个字 节的连续存储单元。
c语言程序设计电子书
c语言程序设计电子书C语言程序设计是一门基础且广泛应用的编程语言课程,它以其高效、灵活和强大的功能而著称。
C语言由丹尼斯·里奇(Dennis Ritchie)在20世纪70年代初期于贝尔实验室开发,至今仍是许多系统软件和应用软件的首选语言。
本电子书将从C语言的基本概念、语法结构、数据类型、控制结构、函数、数组、指针、结构体、文件操作等方面进行详细介绍。
第一章:C语言概述C语言是一种过程式编程语言,它支持结构化编程。
C语言的设计哲学是提供一种通用、高效、易于使用的语言,同时保持对硬件的控制。
C 语言广泛应用于操作系统、嵌入式系统、高性能计算等领域。
第二章:C语言环境和基本语法在开始编写C程序之前,需要配置C语言开发环境,如GCC编译器。
C 程序的基本结构包括预处理指令、函数、变量声明和语句。
程序从`main`函数开始执行。
第三章:数据类型和变量C语言提供了多种数据类型,包括整型、浮点型、字符型等。
变量是程序中存储数据的容器,需要先声明后使用。
C语言是静态类型语言,每种变量在使用前必须指定数据类型。
第四章:运算符和表达式C语言提供了丰富的运算符,包括算术运算符、关系运算符、逻辑运算符、位运算符等。
表达式是由变量、常量和运算符组成的组合,用于执行计算。
第五章:控制结构控制结构是程序流程控制的基本构件。
C语言提供了三种基本的控制结构:顺序结构、选择结构(if语句、switch语句)和循环结构(for 循环、while循环、do-while循环)。
第六章:函数函数是C语言中实现代码复用的重要手段。
函数允许将代码组织成独立的块,每个块可以执行特定的任务。
C语言支持函数的定义、声明、调用和递归。
第七章:数组数组是相同数据类型元素的集合。
C语言支持一维数组和多维数组。
数组在内存中是连续存储的,这使得数组操作高效但也需要小心越界问题。
第八章:指针指针是C语言的核心特性之一。
指针变量存储的是另一个变量的内存地址。
c语言程序设计第四版知识点总结
《C语言程序设计第四版知识点总结》1. 基础语法在学习C语言程序设计的过程中,我们首先要掌握其基础语法。
C 语言是一种结构化的程序设计语言,因此它具有丰富的控制结构和数据类型,包括循环、条件语句、数组、指针等。
这些基础语法的掌握对于我们后续的学习至关重要。
2. 函数与模块化编程C语言非常注重函数的使用和模块化编程。
在C语言中,函数不仅可以完成特定的任务,而且可以被多次调用,具有良好的复用性。
模块化编程也是C语言的重要特点,可以帮助我们更好地组织代码,提高代码的可读性和可维护性。
3. 指针与内存管理指针是C语言的重要概念,它可以让我们直接操作内存,具有很高的灵活性。
但是指针的使用也容易引发内存泄露和越界访问等问题,因此我们需要在学习过程中特别注意内存管理的相关知识。
4. 文件操作在实际的软件开发过程中,文件操作是必不可少的。
C语言提供了丰富的文件操作函数,可以让我们方便地对文件进行读写操作。
文件操作也涉及到了错误处理和异常情况的处理,这些都是我们需要重点掌握的内容。
5. 高级特性C语言还具有一些高级特性,比如动态内存分配、结构体、联合体、位域等。
这些高级特性可以让我们更好地组织和管理数据,提高程序的效率和性能。
总结通过对《C语言程序设计第四版》的知识点总结,我们可以清晰地认识到C语言作为一种结构化的程序设计语言,其基础语法、函数与模块化编程、指针与内存管理、文件操作以及高级特性等内容都是我们需要深入掌握的要点。
只有深入理解这些知识点,我们才能够编写出高质量、高效率的C语言程序。
个人观点在学习C语言程序设计的过程中,我深刻体会到了其作为一种底层语言的重要性。
它不仅可以让我们更好地理解计算机的工作原理,而且可以锻炼我们的编程思维和调试能力。
我认为掌握好C语言是每个程序员都应该具备的基本技能之一。
希望通过本文的总结,你可以更好地理解《C语言程序设计第四版》的知识点,为你的学习和工作提供一定的帮助。
C语言程序设计是计算机科学和软件工程中最重要的课程之一。
数据的基本表现形式 c语言 第4章
0x123(十进制整数291)
十六进制 0x9F(十进制整数159) -0X1AF0(十进制整数-6896)
0x9G7(不能含有非十六进制数码)
5A(无前导0x或0X) OX12A(前导不能是字母O或o)
程序设计基础
程序设计基础
4.1 常量
字面常量
3. 字符常量 字符常量通常指的是单个字符,在C语言中用单引号将单个字 符括起来,如'a'、'b'、'c'。 转义字符(用于描述不可见字符)以反斜线“\”开头,其含义 是将反斜线后面的字符转换成另外的含义。
转义字符 \a \b \f \n \r \t \v 含义 响铃(BEL) 退格 换页 换行 回车 水平跳格(tab) 垂直跳格 转义字符 \\ \? \' \" \0 \ddd \xhh 含义 反斜杠 问号 单引号 双引号 空字符(NULL) 1~3位八进制数所代表的字符 1~2位十六进制数所代表的字符
程序设计基础
4.1 常量
符号常量
使用符号常量有如下好处: 1. 程序的可读性好——见名知意; 2. 程序的可修改性好——改一处避免处处改。 3. 避免误操作——采用统一值。
程序设计基础
4.2 变量
变量的概念
变量:在程序的运行过程中其值可以被改变的量,变量用一 个标识符来表示,称为变量名。 编译器在对源程序进行编译时,会给每个变量分配一个特定 大小的存储单元,并将变量名与这个存储单元的起始地址绑 定在一起。
a的ASCII码为97 \0的ASCII码为0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0
C语言-数据类型及运算
2018/7/29电子科技大Βιβλιοθήκη 计算机学院2.2.6 符号常量
将常量定义为一个标识符,称为符号常量。通常用大 写表示。 如:
#define PI
#define TRUE
3.1415926
1
#define
STAR
‗*‘
便于程序调试和修改
2018/7/29 电子科技大学计算机学院
2.3 变量
在程序执行过程中其值可以改变的量。
2018/7/29 电子科技大学计算机学院
2.4.3 关系运算与逻辑运算 关系运算符: 大于 a>b 大于等于 小于 a<b 小于等于 等于 a==b 不等于
a>=b a<=b a!=b
关系表达式的值为真用 1 或 非零数值表示, 关系表达式的值为假用零表示。 例如: 设 x=100; printf(―%d%d%d\n‖,x==100,x<100,x>=100); 输出为: 1 0 1 字符型数据按其ASCII 码值进行关系运算: ‗b‘<‗f‘ 值为 1; ‗9‘<‗3‘ 值为 0 ;‗A‘==65 值为 1
2018/7/29 电子科技大学计算机学院
5. 右移位运算 变量名>>右移位数 每右移1位相当于除以2 每右移n位相当于除以2的n次幂 6. 左移位运算 变量名<<左移位数 每左移1位相当于乘以2, 每左移n位相当于乘以2的n次幂 注意: 在移位时,变量一端被移出的位被舍弃,另 一端空出的位一般则以0填充。
float b=123.67;
&a2500H 2501H &b2502H 2503H 2504H 2505H 2506H
| |—————— |---- 1250 ----- a=1250 |—————— |-------|-------|----123.67 ------ b=123.67 |——————
