指针2

指针

形参和实参在函数间的传递

  1. 形参和实参都用数组名

  2. 实参用数组名,形参用指针变量

  3. 实参形参都用指针变量

  4. 实参为指针变量,形参为数组名

多维数组和指针

定义

int (*p)[4]

表示一个指向包含四个元素的一维数组的指针

p+i则指向一维数组a[i]。

即类型说明符(指针变量名)[长度] 其中“类型说明符”为所指数组的数据类型。 ”表示其后的变量是指针类型。“长度”表示二维数组分解为多个一维数组时,一维数组的长度,也就是二维数组的列数。

Eg:

有一个二维数组,输入行数和列数,输出该行所有元素和该列所有元素

#include "stdio.h"
int main()
{
   void print(int m,int n,int a[]);
   int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
   int m,n;
leap:    scanf("%d%d",&m,&n);
   if(m<&& n<3)
  {
     print(m,n,a);  
  }
   else
  {
       printf("输入错误,请重新输入!");
       goto leap;
  }

}
void print(int m,int n,int a[])
{
   int (*r)[3],(*c)[3];
   int i;

   r=a;
   c=a;

   for(i=0;i<3;i++)
  {
       printf("%2d",*(*(r+m)+i));
       
  }
   printf("\n");
   for(i=0;i<3;i++)
  {
       printf("%d\n",*(*(c+i)+n));
       
  }
}

字符串和指针

char a[]="i love China!";

等同于

char *a="i love China!";

需要注意:两者从汇编的角度来说,原理并不相同;

posted @ 2021-11-17 20:54  eliotJones  阅读(68)  评论(0)    收藏  举报