C++指针用法和注意事项

1、可以通过指针保存一个变量的地址。例如我们定义变量a=10,然后可以定义一个指针p保存变量a的地址。

2、*p:解引用,找到p指向的地址代表的数。

比如说:

cout<<p<<endl;//输出变量a的地址。
cout<<*p<<endl;//输出变量a中存放的数10。

3、语法:数据类型 * 指针名

int * p=&a;

4、求指针占用的内存空间(32系统中占用4个字节,64位系统中占8个字节)

cout<<"sizeof(int *)="<<sizeof(p)<<endl;//其中sizeof(p)也可以写成sizeof(int *)

这里的int * 是数据类型,sizeof即计算该数据类型所占用的字节数。

比如sizeof(int);sizeof(float);

5、空指针,野指针

即int * p=NULL或者int * p=0x1100;

6、const修饰指针

const int * p=&a;

指针指向可以修改,但是指针指向的值不可以修改,即,int a=10;

第一种:const int* p = &a;,不能改成*p=20

第二种:int * const p;//指针指向的值可以修改,但是指针的指向不可以修改

第三种:const int * const p;//指针指向和指针指向的值都不可以修改

7、指针和数组

定义一个数组    int arr[10];

指针访问:int * p=arr

其中,数组名arr即为数组中的第一个元素的地址,即首地址,不需要&;

cout<<"第一个数“<<*p<<endl;   //第一个元素

p++;//地址++

cout<<"第二个数“<<*p<<endl;   //第二个元素

8、for循环输出数组

for(int i=0;i<10;i++)

{

cout<<*p<<endl;

p++

}

9、指针和函数

函数回顾:

值传递中,形参改变不会影响实参,即如果函数中的形参num1和num2互换,不影响a,b。

地址传递:用指针实现地址传递时,形参会改变实参

#include<iostream>
using namespace std;

void swap(int* p1, int* p2)
{
	int temp = *p1;
	*p1 = *p2;
	*p2 = temp;
}
int main()
{
	int a = 10;
	int b = 20;
	swap(&a, &b);//地址传递,传给p1,p2地址,*p1,*p2是对地址解引用
	cout << a << endl;//这里直接输出 a,b因为形参影响实参,原函数无返回值
	cout << b << endl;
	system("pause");
	return 0;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值