(贵州省普通高中信息学奥赛CSP-JS NOIP—提高组C++知识点讲解)第1讲 指针

2024-04-23
| 18页
| 169人阅读
| 1人下载
普通

内容正文:

学科竞赛编程 C++ NOIP NOI IOI 1 1 PART ONE 指针概念 指针变量的定义 指针变量的赋值 指针的引用 指针的运算 int a; int *p; 定义了变量a 定义了指针变量p 均为 int 型 int *p; p=&a; 或者 int *p=&a; 定义了变量a 定义了指针变量p 均为 int 型 cout<<*p; 输出指针所 指向变量的值 1 PART ONE 内存 10 int x 112053 变量 数据 112053 int *p 指针 指针 p 指向变量 x 1. 指针与变量 1 PART ONE 案例1 : 输入两个不同的数,通过指针对两个数进行 相加和相乘。 输入:两个整数a,b(0<=a<=b<=1000) 输出:输出共两行,第一行通过指针输出两个数,第二行通过指针 输出两个数的和与乘积。 【样例输入】 10 20 【样例输出】 a=10,b=20 s=30,t=200 1 PART ONE 第二步: 通过指针计算a和b的和与乘积,并将和赋给s,讲乘积赋给t。 s=*pa+*pb; t=*pa * *pb; 第三步: 输出两个数,以及两个数的和与乘积 cout<<”a=”<<*pa<<”,”<<”b=”<<*pb<<endl; cout<<”s=”<<s<<”,”<<”t=”<<t; 【过程分析】 第一步: 先定义两个变量a和b,然后定义两个指针变量pa和pb,并让指针pa指向a,pb指向b,再定义两个变量s和t,分别代表a和b的和与乘积。 int a,b; int *pa,*pb; int s,t; pa=&a; pb=&b; 1 PART ONE 完整代码 #include<iostream> using namespace std; int main() { int a,b; int *pa,*pb; int s,t; pa=&a; pb=&b; s=*pa+*pb; t=*pa * *pb; cout<<”a=”<<*pa<<”,”<<”b=”<<*pb<<endl; cout<<”s=”<<s<<”,”<<”t=”<<t; } 1 PART ONE 指针的加减运算 2. 指针与一维数组 int a=10,*p=&a; cout<<p; cout<<p+1; cout<<p-1; 你看到了什么结果呢 1 PART ONE 指针的移动 a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] 访问数组的元素有两种方式,第一种是通过下标,第二种是通过指针来访问,指针指向数组的首地址就叫做指针指向了数组。 int a=[8]={1,2,3,4,5,6,7,8},*p; p=a; p=&a[0]; //指针指向数组的首地址 指针的移动是地址的移动。 p p=&a[0] p p=&a[1] p p=&a[2] p p=&a[3] p p=&a[4] p p=&a[5] p p=&a[6] p p=&a[7] 1 PART ONE 练习1 : 用指针操作数组的输出: #include <iostream> using namespace std; int main () { int a[3] = {1, 2, 3}; int *p; // 指针中的数组地址 p= a; for (int i = 0; i < 3; i++) { cout << "a[" << i << "]的内存地址为 "<< p << endl; cout << "a[" << i << "] 的值为 "<< *p << endl; // 移动到下一个位置 p++; } return 0; } 定义长度为3的数组和一个指针,用该指针操作数组的输出。 1 PART ONE 练习2 : 用指针操作数组的输入与输出 : 1 PART ONE ①用字符数组存放一个字符串,然后输出该字符串。 3. 指针与字符串 你学过哪种方法呢 在c++中,我们可以有两种方式访问字符串 ② 用字符指针指向一个字 符串,可以不定义字符 数组 1 PART ONE 操作字符串 (1)用字符数组存放一个字符串,然后输出该字符串。 int main() { char str[ ]=”I Love Chin

资源预览图

(贵州省普通高中信息学奥赛CSP-JS NOIP—提高组C++知识点讲解)第1讲 指针
1
(贵州省普通高中信息学奥赛CSP-JS NOIP—提高组C++知识点讲解)第1讲 指针
2
(贵州省普通高中信息学奥赛CSP-JS NOIP—提高组C++知识点讲解)第1讲 指针
3
(贵州省普通高中信息学奥赛CSP-JS NOIP—提高组C++知识点讲解)第1讲 指针
4
(贵州省普通高中信息学奥赛CSP-JS NOIP—提高组C++知识点讲解)第1讲 指针
5
(贵州省普通高中信息学奥赛CSP-JS NOIP—提高组C++知识点讲解)第1讲 指针
6
所属专辑
相关资源
示范课
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。