作用
间接访问内存
*内存编号是从零开始记录的一般用十六进制的数字表示的
*可以用指针保存地址变量
定义指针
数据类型*指针变量名
案例:
int a = 10;
int *p;
p = &a;//获取a的地址
cout<<*p<<endl; //解引用,输出a的值
空指针
用途:初始化指针变量(因为初始值为零所以不可访问)
使用:可以定义为NULL或0
野指针
没有指向具体地址的不合法的指针.在使用指针的时候注意规避此类问题
修饰指针
1.常量指针
const int *p = &a;
指向可改,指向的值为常量不可改
2.指针常量
int * const p = &a;
指向不可改,指向的值可改
3.const int * const p
const int * const p = &a;
指向不可改,指向的值也不可改
修饰指针小结:const修饰谁谁不可改,const修饰指针名指针方向不可改;const放在定义前修饰有指向某个地址的指针即指针的值不可改.
指针和数组
使用指针访问数组元素:
#include<iostream>
using namespace std;
int main()
{
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
int* p = arr;//定义指针,访问数组首地址
for (int i = 0; i < 10; i++) {
cout << *p << endl;
p++;//访问第二个元素首地址
}
return 0;
}
指针和函数
定义指针变量,封装一个交换两个元素的函数
作用:利用指针作函数的参数可以修改实参的值(即地址传递 ps:区别于值传递)
#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);
cout << a <<endl<< b;
return 0;

被折叠的 条评论
为什么被折叠?



