最近复习c语言,看到指针这部分内容时深感有必要做一下知识梳理和总结,方便以后再回顾。
- 数的数组和指针
- 一维数组&指针
- 表示方法
- 函数间传递数据的表示方法
- 二维数组&指针
- 用指针数组的表示方法
- 函数间传递数据的表示方法
- 多级指针
- 字符的数组和指针
一维数组及其指针表示方法比较简单,这里直接上示例程序。
//下面只写main函数中的部分代码
int a[4]={1,2,3,4};
int *p=a;//a是数组的首地址,也就是&a[0]。也可以表示为int *p=&a[0];
printf("%dn",*p+1);/
函数间传递数据的表示方法
除以上三种方法可以传递数据之外,还有一种最为简单的方法,但在某些用处上不是很好用。
//下面是main函数中的部分代码
int a[2][3]={1,2,3,4,5,6};
pp(a,6);//调用子函数
//下面是子函数pp
void pp(int p[2][3],int m)
多级指针
最后简单介绍多级指针的使用,不啰嗦原理了,看代码理解的更快。
#include字符的数组和指针int main() { int a[2][3]={1,3,5,7,9,0}; printf("*(*(a+1)+1):%dn",*(*(a+1)+1)); int *p1[2]; p1[0]=a[0]; p1[1]=a[1]; int **p4;//多级指针 p4=p1;/
#include#include void main() { char *p1="hello1";//一维字符数组 method 1 puts(p1); putchar(p1[0]); putchar(*(p1+1)); putchar('n'); char s1[]="hello2";//method 2 puts(s1); p1=s1;//method 3 puts(p1); char s[3][10]={"wo","ai","zhongguo"};//二维字符数组 method 1 puts(s[2]); puts(s[2]+1); char *p2[3];//method 2 数组指针 p2[2]=s[2]; puts(p2[2]); char (*p3)[10];//method 3 数组指针 p3=s; puts(p3[2]); char **pp=p2;//method 4 多级指针 puts(pp[2]); }
实在理解不了的地方,建议多练习就记住了。



