栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

{C++善于利用指针与引用}菜大学生C++笔记19

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

{C++善于利用指针与引用}菜大学生C++笔记19

第6章 善于利用指针与引用
6.1 什么是指针
1 变量里存的是内容,这个内容在何处?

在内存中申请了一段空间。我们用a来标识,把5赋值,20赋值。A与内存的一段地址相关系。

2 如何看变量的内容与地址?
内容与地址不同,定义一个变量后。只要程序未结束,地址不会变。而内容可变。
变量 内容 地址 int a=5 ; a=20
酒店 客户 房间号 张三住在305; 李四住在305

3 直接访问与间接访问某个变量。
如果用一个变量获得另一个变量的地址。可能用两种方法访问变量。
#include < iostream>
using namespace std;
int main()
{
int a=5;
cout< int *p=&a;//变量p得到了a的地址
cout<<*p< return 0;
}

6.2 变量与指针
1 特殊的变量类型,指针变量。
原来所学的每个变量都是存数的。
特殊的变量用于存储变量的地址----》指针变量。
2 定义指针变量 (不是变量名的一部分)
基类型 变量名;
在定义时,变量名前加
,表示此变量是一个指针变量。
变量名为p,不是
p;
3 所有的指针变量占据内存大小都相同。
在64位devC++ 每个指针变量占8个字节
在vs2010中,每个指针变量占4个字节。

为什么指针变量所占内存大小 相同。地址 类似于房间号。
房间有大小,房间号位数都相同。
4 指针变量是存地址的,未赋值之前不允许通过指针变量赋值。


5 在定义指针变量时赋值与定义后赋值形式上的不同。
#include < iostream>
using namespace std;
int main()
{
int a,*pa;
int b,*pb=&b;//在定义时赋值,把b的地址赋值给pb
pa=&a;//在定义后赋值,把a的地址赋值给pa;
int c;
a=20;
b=30;
c=a+b;
cout< *pa=2;//在定义后 *pa表示取pa所指示单元的值
*pb=4;
cout<<“a=”< cout<<“b=”< return 0;
}
6 如何查看一个变量所占内存为几个字节(sizeof运算符)
7 既然所有的指针变量所占内存大小都相同,那类型有什么用?
指针变量的类型 --》基类型(表明,此变量可以存储什么样地址。
int *pa; pa的基类型为int,只能存储 int型地址
double *q; q的基类型为double,只能存储double型的地址。

a占据的内存单元是fe3c。是不是一个字节。Fe3d 3e 3f
d占据的内存单元fe30,是不是一个字节?,也不是。8个字节30,31,。。。37
指针变量的基类型,表示,从这个地址处,连续几个字节归指针变量管。
8 不允许给指针变量赋整数(除了初始化为NULL)。

int *p=NULL; 实际赋值为0,表示指针变量未指向任何地址
9 指针变量一旦定义,只能指向与基类型相同的变量地址。
10 有关指针运算的两个运算 (&取地址 *取地址处的内容)
在定义时用不到 &.
在定义时 * 表示此变量是一个指针变量
在定义后 & 取地址 *取地址处的内容
11 两个指针变量可以指向同一个变量吗?

三个服务员得到同一个房间号,服务时是同一个房间。

例(输入a和b两个整数,按先大后小的顺序输出a和b(用指针变量处理)) (方法:使用两个指针变量指向a,b. 比较后,使其中一个指针指向大数,另一个指向小数。两个变量不变)


12 不使用指针变量,能否写一个函数交换两个变量的值?
传递参数a—》x b-(y 传递是一种单向传递。A与x b与y占据的是不同的内存空间
改变了x不会影响 a
13 使用指针变量,能否写一个函数交换两个变量的值?

#include< iostream>
using namespace std;
int main()
{
void swap(int *p1,int *p2);
int *pointer_1, *pointer_2,a,b;
cin>>a>>b;
pointer_1=&a;
pointer_2=&b;
if(a cout<<“max=”< return 0;
}
void swap(int *p1,int *p2)
{
int temp;
temp=*p1;
*p1=*p2;
*p2=temp;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/847461.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号