指针
基本操作、定义、赋值
#include<iostream>
using namespace std;
int main()
{
int * p1; //定义指针
int*p2, *q; //定义多个指针
int a = 1;
int*p3 = &a; //定义指针并初始化
int *p4; //定义指针
p4 = &a; //给指针赋值
cout << *p4 << endl; //间接引用指针
*p4 = 5; //修改指针指向地址的值
cout << a << endl; //a的值被修改
system("pause");
return 0;
}
指针结合数组的简单运算
#include<iostream>
using namespace std;
int main()
{
int array1[10];
int sum = 0;
int *p= array1;
for (int i = 0; i < 10; i++)
array1[i] = i *3; //初始化数组
for (int d = 0; d < 10; d++)
{
sum += *p;
p++; //指针依次向下移动
}
cout << sum << endl;
system("pause");
return 0;
}
指针与数组的关系
int a[10];
int *p=a;
相互等价的:a[i] 、*(a+1) 、 p[i] 、*(p+1) 数组的值
相互等价的: &a[i] 、 a+i 、 p+i 、 &(p+i) 数组的地址
const指针
1、指向常量的指针(常量指针)
** const指针的值不能修改,但是指针所指向的地址是可以修改的**
const int c=1;
const int d=4;
const int *p; //声明一个指向常量的指针;
p=&c;
*P=2 ; //错误,const指针的值不能修改,即*p为常量;
p=&d; //可以修改指针所指向的位置;
指针常量
指针本身为常量,即指针指向的位置不能改变;
char *const p="avb"
p="def"
指向常量的指针常量(常量指针常量)
双重固定,即指针指向的位置和值都不能改变
const int c=7;
const int * const p=&c;