1.指针的含义-变量的地址
a.指针:C语言中用“指针”来表示内存地址(即:指针指向了内存地址),即“指针”可理解为“变量的地址”,指针是一个unsigned类型的整数
b.变量的地址:即变量占用的字节中第一个字节的地址,计算机通过该地址找到某个变量
c.如何获得变量的地址:在变量前面加上“&”,就表示变量的地址
2.指针变量
a.指针变量:用来存放指针(即变量的地址),表示方式是在某种数据类型后面加星号*
int* p;
double* p;
char* p;
b.给指针变量赋值的方式:把变量的地址取出来,然后赋给对应类型的指针变量
int a;
int* p = &a;
注意:地址&a是赋值给p而不是*p的(即:星号是类型的一部分)
3.指针与数组
a.数组名称也可作为数组首地址使用
int a[10]=1;
int* p = a; //相当于int* p = &a[0]
b.两个int型的指针相减,等价于在求两个指针之间相差了几个int
4.使用指针变量作为函数参数
a.含义:即把变量的地址传入函数。如果在函数中对这个地址中的元素进行改变,原先的数据就会确实地被改变。
void change(int* p){
*p=233;
}
b.单向一次性的值传递:相当于产生一个副本
void swap(int a,int b){
int temp=a;
a=b;
b=temp;
}
c.使用指针变量作为参数时的地址传递:只有在获取地址的情况下对元素进行操作,才能真正地修改变量
void swap(int* a,int* b){
int temp=*a;
*a=*b;
*b=temp;
}
5.引用
a.是C++的一个强有力的语法,使用时文件须保存为.cpp类型
b.引用:不产生副本,而是给原变量起了个别名。对引用变量的操作就是对原变量的操作
c.格式:在函数的参数类型后面加个&(注意:引用并不是取地址的意思)
void change(int &x){
x=1;
}
d.指针的引用:
void swap(int* &p1,int* &p2){
int* temp=p1;
p1=p2;
p2=temp;
}










网友评论