C语言旅途之指针以及int (*p)[4]和int *p[4]的区别

Ⅰ、简单的入门:
①、//代码摘下直接可以运行
#include<stdio.h>
int main()
{
int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
int (p)[4],i,j;
p=a;
printf(“please input the number of i(-1<i<3) and j(-1<j<4):\n”);
scanf("%d %d",&i,&j);
if(i>=0&&i<3&&j>=0&&j<4)
printf(“a[%d][%d]=%d\n”,i,j,
((p+i)+j));
else
printf(“the number of input is error!\n”);
return 0;
}
②、结果展示:
例如:本程序是指针以及指针数组的简单使用,当按照指示输入值时,其结果如下图所示;
C语言旅途之指针以及int (*p)[4]和int *p[4]的区别
C语言旅途之指针以及int (*p)[4]和int *p[4]的区别
C语言旅途之指针以及int (*p)[4]和int *p[4]的区别
☺寄语:
Ⅰ、此程序在Visual C++6.0版本上运行的;
Ⅱ、如果我给的程序有问题,或在叙述方面有问题,或者看不懂我讲解的意思,请及时指出或留言和我讨论,谢谢各位大佬!!!
Ⅲ、
①、首先普及一下指针在C和Java中都会有,只是在Java中不常使用而已,所以在C中有指针已经成为了C的标配;在指针中
代表的指针符号,int 代表的是指向整型的指针,而char 代表的是指向字符类型的指针;
同时在
p中,其中的p代表的是地址,而
p代表的为指向该地址的指针(同时如果能找到该地址的值时,则代表的也可以是值);
②、在本程序中的int a[3][4]是定义,代表的是该数组有三行四列,但当使用的时候,行地址是从0~2共3列,而列地址是从0到3共4列;
③、int (p)[4]意思是:该指针指向一个数组,并且该数组中有四个元素;而int p[4] 意思是:该数组就是一个指针数组,数组中有四个元素,每个元素任然是一个指针;
④、在输出语句中存在该语句
(
(p+i)+j));其指向该地址的元素的值;其中的*(p+i)代表的是指向数组的某一行即:i行,而*(*(p+i)+j))代表的是指向i行j列的值的大小;