C语言学习分享
1、通过指针引用二维数组元素
2、指针与二维数组示例
#include <stdio.h>
#include <stdlib.h>
void main()
{
int aiNum[3][3]=
{{1,2,3},{4,5,6},{7,8,9}};
int(*p)[5];
int i,j;
p = aiNum;
for (i =0;i < 3;i++)
{
for(j=0;j<3;j++)
printf("%d\t",*(*(p +i)+j));
}
putchar('\n');
for (i =0;i < 3;i++)
{
for(j=0;j<3;j++)
printf("%d\t",*(p[i]+j));
}
putchar('\n');
for (i =0;i < 3;i++)
{
for(j=0;j<3;j++)
printf("%d\t",*(&p[0][0]+i*3+j));
}
putchar('\n');
for (i =0;i < 3;i++)
{
for(j=0;j<3;j++)
printf("%d\t",(*(p+i))[j]);
}
putchar('\n');
}
3、二维数组作为函数参数
当二维数组名作为函数实参时,对应的形参必须是一个行指针变量。
和一维数组一样,数组名传送给变量的是一个地址值,因此,对应的形参也必须是一个类型相同的指针变量,在函数中引用的将是主函数中的数组元素,系统只为形参开辟一个存放地址的存储单元,而不可能在调用函数时为形参开辟一系列存放数组的存储单元。
4、指针数组
5、指针数组的示例
#include <stdio.h>
int main(){
int i;
char *menu[5]=
{"aaa","bbbb","ccc",”dd","ee"};
for (i = 0;i < 5;i++){
puts(menu[i]);
}
return 0;
}
6、结构体指针
7、结构体指针变量作为参数
8、指针的指针
9、函数指针
10、指针数据类型小结
11、无类型指针