c语言 指针输出数组
发布网友
发布时间:2022-12-21 06:58
我来回答
共3个回答
热心网友
时间:2023-10-06 08:06
(*p)[4]是数组指针,每一个指针指向含有4个整形的一维数组;p[1]对于前面的声明来说是指针,而p[1][1]是二维数组,所以不用再加上*取值,若要加上*,
代码中:printf("%4d",p[i][j]);
可以这样处理:printf("%4d",*(p[i]+j));
热心网友
时间:2023-10-06 08:06
通俗点说p是个数组不用取地址,他显示的ij都是按你前面条件,从0开始算的(i=0;i<3;i++)(j=0;j<4;j++),你说如果他都这样排序的还要取地址干嘛
热心网友
时间:2023-10-06 08:07
数组 与 普通指针 的区别:
1、指针的本质是一个与地址相关的复合类型,它的值是数据存放的位置(地址);数组的本质则是一系列的变量。
2、数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。指针可以随时指向任意类型的内存块,它的特征是"可变",所以我们常用指针来操作动态内存。
3、当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针。
因为第三条,当把数组名作为函数的形参进行传递时,该效果等同于传递一个同类型的指针。直接在程序当中调用 函数名(数组名)即可。
例程:
#include<stdio.h>
int a[]={1,2,3,4,5,6};
void print(int a[]){//数组指针作为形参
for(i=0;i<6;i++) printf("%d ",a[i]);//输出数组
}
int main(){
print(a);//传入数组名
return 0;
}