数组和指针算是c语言中较难的部分,尤其是涉及到二级,三级指针和二维数组指针。在二维数组指针中,*(p+1)+1表示第 1 行第 1 个元素的地址;*(*(p+1)+1)表示第 1 行第 1 个元素的值。在学习指针的过程中,要注意&和*的作用。
一、星号*主要有三种用途:
1、表示乘法,例如int a = 3, b = 5, c; c = a * b;,这是最容易理解的。
2、表示定义一个指针变量,以和普通变量区分开,例如int a = 100; int *p = &a;。
3、表示获取指针指向的数据,是一种间接操作,例如int a, b, *p = &a; *p = 100; b = *p;。
二、取地址&的作用:
取某个数的地址。
还有要注意的是在使用sizeof计算数组长度时,要注意pa为指针时,sizeof(pa)==4,所以不要随意对指针用sizeof。还有定义指针时要对它初始化,否则会有问题。