指针复习

来源:互联网 发布:环保 知乎 编辑:程序博客网 时间:2024/06/05 13:24

对于指针希望这次能全明白

首先分清地址与内容

变量与指针

用来存放变量的地址的变量就是指针变量;*i_pinter表示i_pinter所指向的变量

I=3;

*i_pinter=3;   3赋值给指针变量i_pinter所指向的变量

one;

定义指针变量: 基类行 *指针变量名  float *pointer_3;  分清:pointer_1=&i; 是i的地址放到指针变量  中

注意: 不能将一个整数给一个指针变量赋值: int *pointer_1=2000; x

可以先定义一个变量  变量的地址给指针变量

::: int i  ;     int * pointer_1=&i;

{ int  a,b;

int  *pointer1,*pointer2;

a=100;b=20;

pointer1=&a;

pointer2=&b;

cout<<a<<b;

cout<<*pointer1<<*pointer2<<endl;  相同  

&*pointer1的意义与&a相同 


指针做为函数的参数:

作用是将一个变量的地址传送给被调用函数的形参

void swap(int*p1,int*p2);

指向数组元素的指针

就是指向数组元素的地址

int  a[]

int *p;

*p=a ;、、 首地址元素              *(p+i)         *(a+i)      p+i   a+i  都是表示指向数组元素  即a【i】     有指针法与下标

指针输出数组:

int a[10];

int  i,*p=a;

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

cin>>*(p+i);

cout<<endl;

for(p=a;p<(a+10);p++)

cout<<*p<<endl;


指针变量做函数的形参接收数组地址

void select_sort(int *p;int   n)

用指针变量做形参

c++将形参数组名一律作为指针变量来处理 

void select_sort(int arry【】,int   n)  相当于 void select_sort(int *arry ,int  n)

用字符指针指向字符串 :

直接看题:  将字符串str1复制为字符串str2;、

char str1[]="l sf asfs  af ",str2[20],*p1,*p2;

p1=str1;*p2=str2;

for(;*p1!='\0';p1++,p2++)

*p2=*p1;

*p2='\0‘;

p1=str1;p2=str2;

1.1  函数指针调用函数

函数类型 (*变量名)(参数表列);    -》int (*p)(int, int);

比大小时:max

int max(int x,int y)

int(*p)(int,int)

.........

p=max;//p指向函数max

..........

1.2 用指向函数的指针做函数参数

double irn(double a,..............double(*fun)(double));

将函数名传递给其他函数参数    

2. 返回指针值的函数  指针函数 : int *a(int x, int y); a是函数名

................................

3 指向指针的指针:(指向指针数据的指针)

char *(*p) ........可以写成char **p

例子理解:

......

int main()

{char **p;

char *name[ ]={“BASIC”," FORTRAN", "C++","PAS","CDFA"};

p=name+2;

cout<<*p<<endl;

cout<<**p<<endl;

}、

运行结果是:

c++

c

因为*p代表的是name【2】,**p代表的是name【2】中的第一个字符


3 const指针

int a=12;int b=10;

const int*p=&a; 后不能用指针变量修改对象的值 *p=30;不合法

3.2  注意char const *p=“chain”; 是指向不能改变 

3.3 const int *const pt=&a; 指向对像和指向对象的值都不能改变;

3.4 (void*p)是指向不确定类型的指针变量


.................................................................................

总结 如图示

简述一下个人针对引用的理解:

就是给一个变量起别名,记得在一本书上介绍一个变量可以有多个别名,一个别名只能对应一个变量。

在引用的使用中,常见的是;

函数传递数据的功能;

例如:

函数声明:  void swap(int,int)

                       swap(I,j);

..............................

                        void swap(int a,int b)  { int temp;temp=a;.........}

还有使用指针变量做形参: void swap(int *,int *);

                                       swap(&I,&j);

                                   调用的函数 : void swap(int *p1,int *p2);

........................等



原创粉丝点击