c语言指针

  1指针的定义是 用于储存另一个变量的地址。

  2指针与普通变量一样,需要定义和赋值。

  指针赋值的方法有两种:1先定义后赋值     int a; int *p;p=&a;

                                          2.定义的同时进行赋值 int a; int *p=&a;

 3 &与*的区别,变量有两个属性,地址和值;&是取址,*是赋值,p=&i;表示将变量i的内存地址赋给p,q=*p;就是将变量p的值赋给q

  &*p与*&p的差别就是前者得到的是地址,后者得到的是值,比如int a=86;int *p=&a; &*p为1245052,而*&a为86

 4 指针与数组的关系

  有指针int *p与数组int a[5],那么指针指向数组表示为p=&a[0],或者p=a。指针的累加a[0+i]相当于*(p+i);

  对于二维数组来说&a[i][j]相当于a[i]+j;也可以用(*p)[5],其中p=&a[0];

  5字符串与指针

  对于字符串来说,char *string = "hello world " ,也是string的指向字符串的首地址

  字符串数组与指针

  char *number[]={"one","two","three","four","five"}字符串数组指针的最大好处就是 指针自动分配字符串的长度,减少空间使用

  指向指针的指针**p

  比如char **p,那么p=number+i;就是上述number的地址

  6指针变量做为函数参数

 在调用一个函数时,例如void swap(int * a,int*b){int temp;temp =a;*a=*b;*temp}    调用参数是指针时,例如调用swap(x,y),其值会交换

  但如果调用函数void swap(int a, int b){……}不是用指针写的,那么引用这个函数其值并不会交换

  

 

 

 

  

posted @ 2018-01-03 00:55  yorkiiz  阅读(178)  评论(0编辑  收藏  举报