C++从入门到精通 第10章 教学PPT
C语言从入门到精通 第10章ppt课件

或enum color {red,yellow,blue,white,black} c1,c2;
或enum {red, yellow, blue, white, black} c1,c2;
➢枚举类型数据可以进行赋值运算。枚举类型是有序 类型, 枚举类型数据还可以进行关系运算。枚举类型 数据的比较转化成对序号进行比较, 只有同一种枚举 类型的数据才能进行比较。
在定义枚举类型时,程序员可在枚举数据时通过“=”号 自己规定序号,并影响后面的枚举数据的序号,后继序号以此 递增。例如:
enum status {copy=6, delete};
则copy的序号为6, delete的序号为7。 最新课件
上一页下24 一页
第10章 共用体与枚举类型
2. 枚举类型变量的定义 (1) 先定义枚举类型, 再定义枚举类型变量: enum 标识符 {枚举数据表}; enum 标识符 变量表; (2) 在定义枚举类型的同时定义枚举类型变量:
union icf {int i; char c; float f; };
最新课件
上一页下3 一页
第10章 共用体与枚举类型
2 共用体变量的定义 (1) 先定义共用体类型, 再定义共用体变量: ① union {成员表}; ② union 共用体名 变量表;
例如:union data { int i; char ch; float f; }; union data a最,新b课,c件;
最新课件
上一页下21 一页
第10章 共用体与枚举类型
例如
(1) 定义枚举类型status, 包含复制与删除两种状态: enum status {copy, delete}; 枚举类型status仅有两个数据,一个是copy,一
C++初学到精通 第10章

•
继承的层次性
A B C
1-3
派生类
• •
public派生与private派生 protected成员与protected派生
1-4
多基派生
• • •
多基派生的声明和定义 二义性问题 解决方案
A CB1-5虚基类• •共同基类带来的二义性 解决方案
A B D C
1-6
派生类的构造函数和析构函数
第10讲:继承
1-1
课程内容安排
• • • • • • •
继承的基本概念 派生类 多基派生 虚基派生 派生类的构造和析构函数 继承与组合的区别 基类与派生类对象间的相互转换
1-2
继承的基本概念
•
继承的概念
– 继承是很自然的概念,广泛存在于现实世界中,对面向对 象的程序设计而言,继承性的引入意义巨大,首先,程序 员可以按现实世界、按自然的方式去思考和解决问题,组 织信息,提高了效率,其次,可以复用基类的代码,并可 以在继承类中增加新代码或者覆盖基类的成员函数,为基 类成员函数赋予新的意义,实现最大限度的代码复用。
• • • •
派生类的构造函数 派生类的析构函数 多基派生类的构造函数和析构函数 虚基派生的构造函数和析构函数
1-7
继承与组合的区别
• •
继承不是万金油 组合
1-8
基类与派生类对象间的相互转换
• • • •
类型适应 多基继承时的情况 公共基类 虚基类的情况
1-9
C入门经典(第4版)ch10简明教程PPT课件

C入门经典(第4版) 10.3 计算机绘图系统的硬件组成
前面介绍过,stdin上的键盘输入有两种形式:一种是格式化输入,主要 由scanf()函数提供;另一种是非格式化输入,通过getchar()等函数接收原始的 字符数据。这两种形式都很常见,下面详细介绍它们。 格式化键盘输入 输入格式控制字符串 输入格式字符串中的字符 输入浮点数的各种变化 读取十六进制和八进制值 用scanf()读取字符 scanf()的陷阱 从键盘上输入字符串 键盘的非格式化输入
C入门经典(第4版) 10.3.8 从键盘上输入字符串
<stdio.h>头文件中的gets()函数可以将一整行的文本作为字符串读入。它 的函数原型如下: char *gets(char *str); 这个函数会将连续的字符读入指针str所指的内存中,直到按下回车键为 止。它会用终止字符'\0'取代按下回车键时读入的换行符。其返回值与变元相 同,即存储字符串的地址
C入门经典(第4版) 10.3.2 输入格式控制字符串
在scanf()或wscanf()函数中使用的格式控制字符串不完全类似于printf()中 的格式控制字符串。在格式控制字符串中添加一个或多个空白字符,如空格‘ ’、 制表符‘\t’或换行符‘n’,scanf()会忽略空白字符,直接读入输入中的下一个非空 白字符。在格式控制字符串中只要出现一个空白字符,就会造成无数个连续的 空白字符被忽略。因此,可以在格式字符串内加入任意多个的空白字符,使输 入易于理解。注意,scanf()默认忽略空白字符,但使用%c、%[]或%n指定符 读取数据时除外 。
第一个例子尝试过读入字符串,读入字符串还有其他方法。有3个格式指 定符用于读取一个或多个单字节字符。使用格式指定符%c可以读取一个字符, 并将它存储为char类型,如果使用的是%lc,就存储为wchar_t类型。对于字符 串,可以使用指定符%s或%[],如果要将输入存储为宽字符,就使用%ls或 %l[],其中转换指定符的前缀是L的小写。此时要给存储的字符串追加终止字 符‘\0’,作为最后一个字符。使用格式符%[]或%l[]读入的字符串必须只包含方 括号内的字符,如果方括号中的第一个字符是^时,则读入的字符串不能包含 方括号内^字符后面的任何字符,例如%[aeiou]读入的字符串只能包含元音。 碰到不是元音的字符就停止输入。而%[^aeiou]读入的字符串不能包含元音。 碰到元音就停止输入 。
C++的PPT第10章

Hale Waihona Puke 总结: 设有双目运算符 B,如果要重载 B 为类的成员函 数,使之能够实现表达式 oprd1 B oprd2,其 中 oprd1 为A 类对象,则 B 应被重载为 A 类的 成员函数,形参类型应该是 oprd2 所属的类型。 经重载后,表达式oprd1 B oprd2 相当于 oprd1.operator B(oprd2),注意重载双目运 算符只需要一个参数。
单目运算符重载
单目运算符,如果重载为类的成员函数,为区 分前置和后置运算符,C++规定:
对于前置单目运算符,重载函数没有参数。 对于后置单目运算符,重载函数有一个整型参数, 这个整型参数没有其他用途,只是用于区分前置运 算与后置运算。
(附加例):定义一个CInt类,类中只有一个数据成 员i,两个运算符“++”的重载函数,一个没有参数, 实现的是前置运算符重载,另一个有一个整型参数, 实现后置运算符重载。
class CInt {private: int i; public: CInt(int a=0); void Print(); CInt operator ++(); CInt operator ++(int); }; int main() { CInt a(5), b(5), c, d; c = a++; d = ++b; cout << "a: “<<a.Print(); cout << "b: “<<b.Print(); cout << "c: “<<c.Print(); cout << "d: “<<d.Print(); }
C++程序设计课件 第10课 C++字符串

第10课 C++字符串1、基本操作--------------------------------------------------------------------- #include <iostream>#include <string>using namespace std;int main(){string s1="abcde",s2="ABCDE",s;s=s1+s2;cout<<s<<endl;cout<<s.size()<<endl;return 0;}--------------------------------------------------------------------- 2、字符串实例-大写转小写--------------------------------------------------------------------- #include <iostream>#include <string>using namespace std;int main(){string s="abcdeABCDE";for(int i=0;i<s.size();++i){if(s[i]>='A' && s[i]<='Z')s[i]=s[i]+32;}cout<<s<<endl;return 0;}--------------------------------------------------------------------- 3、倒序--------------------------------------------------------------------- #include <iostream>#include <string>using namespace std;int main(){string s("当周围变得寂静无声的时候,你就是高手了!");string s1;s1=s;for(int i=0;i<s.size();++i)s1[i]=s[s.size()-i-1];cout<<s1<<endl;return 0;}--------------------------------------------------------------------- 4、变码--------------------------------------------------------------------- #include <iostream>#include <string>using namespace std;int main(){string s("µ±ÖÜΧ±äµÃ¼Å¾²ÎÞÉùµÄʱºò£¬Äã¾ÍÊǸßÊÖÁË£¡");string s1;s1=s;for(int i=0;i<s.size();++i)s1[i]=s[i]+5;cout<<s1<<endl;return 0;}--------------------------------------------------------------------- 5、查找子串位置--------------------------------------------------------------------- #include <iostream>#include <string>using namespace std;int main(){string s="abcde";string s1="cd";int n;n=s.find(s1,0);cout<<n<<endl;return 0;}--------------------------------------------------------------------- 6、查找并替换子串---------------------------------------------------------------------#include <iostream>#include <string>using namespace std;int main(){string s="abÁõ¶«Ã÷cde";string s1="Áõ¶«Ã÷";int n;cout<<s<<endl;n=s.find(s1,0);s.replace(n,s1.size(),"ÇúÒÕ");cout<<s<<endl;return 0;}--------------------------------------------------------------------- 7、查找并删除子串--------------------------------------------------------------------- #include <iostream>#include <string>using namespace std;int main(){string s="ab刘东明cde";string s1="刘东明";int n;cout<<s<<endl;n=s.find(s1,0);s.erase(n,s1.size());cout<<s<<endl;return 0;}--------------------------------------------------------------------- 8、查找并取出子串--------------------------------------------------------------------- #include <iostream>#include <string>using namespace std;int main(){string s="ab刘东明cde";string s1="刘东明";string s2;int n;cout<<s<<endl;n=s.find(s1,0);s2=s.substr(n,s1.size());cout<<s2<<endl;return 0;}--------------------------------------------------------------------- 9、实例-算式解析--------------------------------------------------------------------- #include <iostream>#include <string>#include <sstream>using namespace std;int str2num(string s){int n;stringstream ss;ss<<s;ss>>n;return n;}int main(){string s="1+2",s1,s2;int n1,n2;n1=s.find("+",0);n2=n1+1;s1=s.substr(0,n1);s2=s.substr(n2,s.size()-n2);cout<<s1<<endl;cout<<s2<<endl;cout<<str2num(s1)+str2num(s2)<<endl;return 0;}--------------------------------------------------------------------- 10、实例-英汉词典解析---------------------------------------------------------------------#include <iostream>#include <string>#include <sstream>using namespace std;int main(){string s="ability n.能力",s1,s2;int n1,n2;n1=s.find(" ",0);n2=n1;while(true){++n2;if(s.substr(n2,1)!=" ")break;}s1=s.substr(0,n1);s2=s.substr(n2,s.size()-n2);cout<<s1<<endl;cout<<s2<<endl;return 0;}--------------------------------------------------------------------- 11、演示:单串数据库-学生成绩管理系统(实验准备)--------------------------------------------------------------------- 程序:略。
c++完全讲义ppt unit10

10.2 异常处理的机制
异常处理机制:
throw表达式抛出异常为异常处理的第一步.在堆栈的压 表达式抛出异常为异常处理的第一步. 表达式抛出异常为异常处理的第一步 栈和出栈操作中发生错误而抛出的异常,理所当然地应由 栈和出栈操作中发生错误而抛出的异常, 表 调用堆栈的程序来处理.异常并非总是类对象,throw表 调用堆栈的程序来处理.异常并非总是类对象, 达式也可以抛出任何类型的对象,如枚举,整数等等. 达式也可以抛出任何类型的对象,如枚举,整数等等.但 最常用的是类对象. 最常用的是类对象. 中异常抛出与异常处理之间有一整套程序设计的机制. 在C++中异常抛出与异常处理之间有一整套程序设计的机制. 中异常抛出与异常处理之间有一整套程序设计的机制 首先采用关键字try,构成一个try块(try block),它包含 首先采用关键字 ,构成一个 块 ) 抛出异常的语句 当然也可以是包含了这样的调用语句, 的语句. 了抛出异常的语句.当然也可以是包含了这样的调用语句, 该语句所调用的函数中有能够抛出异常的语句. 该语句所调用的函数中有能够抛出异常的语句.
10.2 异常处理的机制 流程控制规则: 流程控制规则:
1.如果没有异常发生,继续执行 块中的代码,与try块相 .如果没有异常发生,继续执行try块中的代码 块中的代码, 块相 子句被忽略, 返回0. 关联 的catch子句被忽略,程序正常执行,main()返回 . 子句被忽略 程序正常执行, 返回 2.当第一个 块在 循环中抛出异常 , 则该 循环退出 , . 当第一个try块在 循环中抛出异常,则该for循环退出 块在for循环中抛出异常 循环退出, try块也退出, 去执行可处理 块也退出, 异常的catch子句. 子句. 块也退出 去执行可处理pushOnFull异常的 异常的 子句 istack.PrintStack()不再执行,被忽略. 不再执行, 不再执行 被忽略. 3. 如果第二个 . 如果第二个try块调用 块调用Pop()抛出异常 , 则退出 抛出异常, 块调用 抛出异常 则退出for和 try 和 去执行可处理popOnEmpty异常的 异常的catch子句. 子句. 块,去执行可处理 异常的 子句 4.当某条语句抛出异常时,跟在该语句后面的语句将被跳过. .当某条语句抛出异常时,跟在该语句后面的语句将被跳过. 程序执行权交给处理异常的catch子句,如果没有 子句, 程序执行权交给处理异常的 子句 如果没有catch子句 子句 能够处理异常,则交给C++标准库中定义的 标准库中定义的terminate(). 能够处理异常,则交给 标准库中定义的 .
最新C语言课件第10章教学讲义ppt
➢完成一个学生成绩信息管理系统应用程 序的设计,该程序的操作界面。
电脑基础·实例·上机系列丛
清华大学出版社
Visual C++程序设计教程
电脑基础·实例·上机系列丛
清华大学出版社
Visual C++程序设计教程
电脑基础·实例·上机系列丛
清华大学出版社
Visual C++程序设计教程
电脑基础·实例·上机系列丛
“成绩浏览”功能区运行结果
电脑基础·实例·上机系列丛
清华大学出版社
Visual C++程序设计教程
实现用户登录认证和用户登出功能
➢对数据库表数据进行添加或删除意味着改变 数据库的内容,在进行添加或删除数据信息 时应慎重,为了避免有人恶意添加或删除信 息,因此,只有具有此操作权限的人才能进 行操作,即在程序中,当用户需要进行添加 或删除数据信息操作时,要进行一个用户登 录认证,只有通过认证的用户才有权限进行 数据库内容的修改。
电脑基础·实例·上机系列丛
清华大学出版社
程序实现
Visual C++程序设计教程
➢(5)实现学生成绩信息浏览功能。 ➢(6)实现用户登录认证和用户登出功
能。 ➢(7)实现学生ห้องสมุดไป่ตู้绩信息添加功能。 ➢(8)实现学生成绩信息删除功能。
电脑基础·实例·上机系列丛
清华大学出版社
程序实现
Visual C++程序设计教程
电脑基础·实例·上机系列丛
清华大学出版社
Visual C++程序设计教程 建立一个带有ODBC数据库支持功能的单文档界面 的工程文件
➢建立一个带有ODBC数据库支持功能的 单文档界面的工程文件的操作步骤如下:
C++从入门到精通教学ppt
3 C++的特点
1. 封装性 2. 继承性 3. 多态性
1.2 程序设计概述
➢ 1 结构化程序设计 ➢ 2 面向对象程序设计
1 结构化程序设计
功能分解并逐步求精
2 面向对象程序设计
把数据和处理数据的过程看成一个整体—对 象
1.3 C、C++与Visual C++
➢ 1 C与C++ ➢ 2 C++与Visual C++
1 C与C++
C语言编写代码如下: /* 这是一个简单的C程序: simple.c */
#include <stdio.h> /*包含标准的输入输出库*/ void main() { printf( " Hello World !\n " ); }
C++语言编写代码如下:
// 这是一个简单的C++程序:simple.cpp #include <iostream.h> //包含标准库中的输入输出流头文件 void main() { cout<<" Hello World !\n "; //输出字符串 }
பைடு நூலகம்
2 c++的由来
C++语言起源于C语言,是在C语言的基础上增加了面向对象程序设 计的要素而发展起来的。 1979年,Bjarne Stroustrup到了Bell实验室,开始从事将C改良为 带类的C (C with classes)的工作。1983年将该语言正式命名为 C++。 总的来说,C++语言相对于C语言来说引入了两个大的新东西:其一, 就是面向对象(具体来讲就是类);其二,就是模板技术,模板是C++ 中比较复杂的部分,但是作为一个真正的C++程序员,这部分很重 要,尤其是对C++标准程序库的掌握尤为重要。
C入门教程PPT
例如: string s1, s2; s1="ABCD"; s2 = s1; 其中,s1、s2是指向字符串的引用变量,s1的值是字符串 ''ABCD''存放在内存的地址,这就是对字符串的引用,两个引 用型变量之间的赋值,使得s2、s1都是对''ABCD''的引用,如 图2.2所示。
public static void Main() {
MessageBox.Show("Hello World","Message from C#");
} }
这次需要增加对System.Windows.Forms命名空间的引 用,选择菜单“项目” →“添加引用…”打开“添加引用”对 话框,在列表中找到并选中“System.Windows.Forms.dll”, 然后单击“选择”按钮,最后单击“确定”按钮完成添加。将 文件另存为EX1_2.cs,在开发环境中按F5键编译运行程序,如 果用命令行方式编译请参照控制台版,编译命令如下:
csc /target:exe EX1_1.cs
程序运行结果如图1.1所示。 Hello World!
下面再看Windows应用程序的版本。
【例1.2】 弹出一个消息对话框显示“Hello World!”字样。 用“Windows应用程序”模板建立项目,或者使用文本编辑工 具输入源代码如下: using System; using System.Windows.Forms; class HelloWorld {
精品课件-C++程序设计-第10章
} protected:
float speed; int total; };
第10章 多态与虚函数
class Car:public Vehicle { public:
Car(int aird,float speed,int total):Vehicle(speed,total)
从上例代码的运行结果来看,当调用DelPN(a)后,在析构的 时候,系统成功地确定了先调用Car类的析构函数。但如果将析 构函数的virtual修饰去掉,再次运行代码则会得到不同的结果, 如下所示:
【程序10.4】 #include <iostream> using namespace std;
class Vehicle { public:
第10章 多态与虚函数
事实上,带变量的宏和函数重载机制也允许将不同的特殊行 为和单个泛化记号相关联。然而,习惯上我们并不将它们展现出 来的行为称为多态(或静态多态)。在这里,如果没有明确所指, 默认就是动态多态,其技术基础在于继承机制和虚函数。 10.2.2 虚函数与重写
简单地说,那些被virtual关键字修饰的成员函数就是虚函数。 声明虚函数的格式如下:
第10章 多态与虚函数
本章将讨论多态的概念及其作用。首先看下面的例子: 【程序10.1】 #include <iostream> using namespace std; class Vehicle { public:
Vehicle(float speed,int total) {
Vehicle::speed=speed; Vehicle::total=total; }
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
10.2.2 指针的运算
【范例10-4】 指针变量自身的运算
char *p[2]; char array[2][20]; p[0]=array[0]; p[1]=array[1];
p[0] p[1] array [0] array [1]
10.2.1 指针和指针变量
交换函数执行后,调用并执行swap函数,但 是还没有返回到主函数前
point1 存储数据&a p2 存储数据&a point2 存储数据&b
变量 1
a
p1 存储数据&b
变量 2
b
10.2.2 指针的运算
大家已经知道了关于指针变量的运算方法了, 那么指针变量自身又是怎么运算的呢?指针 的运算就是地址的运算。
【范例10-6】 使用数组指针访问二维数组 元素
10.3.3 指针和字符数组
定义字符指针 char *p=″how are you?”;
注 意:该语句定义了一个字符型指针p,指向一 个字符数组。需要注意的是,该数组的最后一 个元素应该是字符串结束标记’\0’,而不是 ″how are you?″中的最后一个字符’u’。
计算机内存被划分成按顺序编号的内存单元, 这就是地址。如果在程序中定义了一个变量, 在对程序进行编译时,系统就会给这个变量分 配内存单元。
内存 单元 … 2000 变量i 2004 变量j 2008 …
变量i的地址假设的是2000 变量i的真实地址是&i
10.1.2 创建指针
定义指针变量的一般形式为
3. 指针变量中只能存放指针 ,不要将一个非零数赋给一个指针 变量。
//错误的赋值 //正确的赋值
10.2 指针和指针变量
10.2.1 指针和指针变量 10.2.2 指针的运算
10.2.1 指针和指针变量
【范例10-1】 通过指针变量访问整型变量
变量 p1 存储数据&a 变量 p2 存储数据&b 变量 a
第10章
内存的快捷方式——指针
指针概念 指针和指针变量 指针和数组 指针和函数 const指针 void指针类型 范例应用
第10章
内存的快捷方式——指针
指针概念 指针和指针变量 指针和数组 指针和函数 const指针 void指针类型 范例应用
10.3.2 指针和多维数值数组
表示形式
array *array
含义
0行元素的地址 0行0列元素的地址
地址
2000 2000 2020
array[1]+2 1行2列元素的地址 *(array+1)+2 &array[1][2] array+1 1行元素的地址 &array[1]
2012
10.3.2 指针和多维数值数组
10.3.3 指针和字符数组
【范例10-7】 字符串拷贝函数功能实现方 法
10.3.4 字符指针和字符数组
字符数组和字符指针变量的有区别?简单来 说,有以下两个显著的不同点。
1. 赋值方式不同。 2. 指针变量的值是可以改变的,但是字符数组名 是不可以改变的 。
10.3.4 字符指针和字符数组
第10章
内存的快捷方式——指针
指针概念 指针和指针变量 指针和数组 指针和函数 const指针 void指针类型 范例应用
第10章
内存的快捷方式——指针
指针概念 指针和指针变量 指针和数组 指针和函数 const指针 void指针类型 范例应用
01 02 03 04 05 06 07 08 09 10 11 #include <iostream.h> void main() { int *p1,*p2,a=1,b=10; //定义变量 p1=&a; //p1指向变量a p2=&b; //p2指向变量b cout<<”p1地址中的值是”<<*p1<<endl; cout<<”p2地址中的值是”<<*p2<<endl; cout<<”p1-1地址中的值是”<<*(p1-1)<<endl; cout<<”p1地址中的值-1是”<<*p1-1<<endl; }
变量 b
10.2.1 指针和指针变量
【范例10-2】 使用指针变量交换a和b, 满足a小于b
变量 p1 存储数据&a 变量 a
变量 p1 存储数据&b
变量
a
变量 p2 存储数据&b
变量
b
变量 p2 存储数据&a
变量
b
10.2.1 指针和指针变量
【范例10-3】 使用函数实现对输入的两个 整数按大小顺序输出
10.2.1 指针和指针变量
调用swap函数后
point1 存储数据&a 变量 2 a
point2 存储数据&b
变量 1
b
10.2.1 指针和指针变量
【拓展训练10-3】 调用swap函数,把实参point1和point2传递 给了形参p1和p2后,具体执行swap函数前
point1 存储数据&a p1 存储数据&a 变量 1 a point2 存储数据&b p2 存储数据&b 变量 2 b
第10章
内存的快捷方式——指针
指针就是内存地址,访问不同指针就是访问 内存中不同地址中的数据,正确的使用指针 会提高程序的执行效率。认真学习这一章, 深刻领会指针的用法,将会给你的程序开发 带来巨大的帮助。
10.1 指针概述
10.1.1 计算机内存地址 10.1.2 创建指针
10.1.1 计算机内存地址
10.3 指针数组
10.3.1 10.3.2 10.3.3 10.3.4 10.3.5 10.3.6 指针和一维数值数组 指针和多维数值数组 指针和字符数组 字符指针和字符数组 指向指针的指针 指针数组和数组指针
10.3.1 指针和一维数值数组
int array[10]; //定义array为包含10个整型数据的数组 int *p; //定义p为指向整型变量的指针变量 对该指针变量赋值 p=&array[0]; 或者 p=array;
变量 i
变量 j
10.1.2 创建指针
在定义指针变量时需要注意以下三点: 1. 如果有int *p,指针变量名是p ,而不是* p,*p是表达式。 2. 在定义指针变量时必须明确其指向的数据类型。
正确的赋值 int c; int *p; p = &c; 错误的赋值 char c; int * p; p = &c; int *p=2; int *p=0;
1. 赋值方式不同。
对字符数组只能对各个元素赋值,不能用以下办法对字符数组赋值。 char str[20]; str=″how are you?″; 字符指针变量,可以采用下面的方法赋值。 char * array; array =″how are you?″; 字符指针变量赋初值。 char * array =″how are you?″; 等价于 char * array; array =″how are you?″; 数组的声明时初始化只能按照下面的方式。 char str[20]={″how are you?″};
第10章
内存的快捷方式——指针
指针概念 指针和指针变量 指针和数组 指针和函数 const指针 void指针类型 范例应用
第10章
内存的快捷方式——指针
指针概念 指针和指针变量 指针和数组 指针和函数 const指针 voi符数组
2. 指针变量的值是可以改变的,但是字符数组名是 不可以改变的。
char *array=″how are you?″; 的赋值,指针变量 array = array +1; char * array; array =″how are you?″; array= array1 +1; char str[20]={“how are you?”} 字符数组名 str = str +1; //这是正确
10.2.1 指针和指针变量
交换函数执行后,调用并执行swap函数,但是还没有返 回到主函数前,这里交换的变量a和b的值,point1和 point2、p1和p2的指向并没有变,还是指向原来的单 元格,但是因为a和b交换了,所以导致四个指针变量 所指向的值发生了改变。
point1 存储数据&a p1 存储数据&a 变量 2 a p2 存储数据&b point2 存储数据&b 变量 1 b
第10章
内存的快捷方式——指针
指针概念 指针和指针变量 指针和数组 指针和函数 const指针 void指针类型 范例应用
第10章
内存的快捷方式——指针
指针概念 指针和指针变量 指针和数组 指针和函数 const指针 void指针类型 范例应用
10.3.6 指针数组和数组指针
程序中提到了指针数组这个概念,在前面的 章节当中我们用到了另外一个概念叫做数组 指针,二者是一回事吗?不是的!
10.3.6 指针数组和数组指针