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){……}不是用指针写的,那么引用这个函数其值并不会交换