c语言中数组名可以与其他变量名相同,7、C语言中一维数组名与一般指针变量的相似与区别(同理多维)...

#include

#include

#define MAXSIZE 10

//数组名与一般指针变量的区别

//数组名作为形参,(该数组名仅仅是一个普通的指针变量,不具有常量特性(可自增,自减),也不代表一个数据类型。),但是不影响实参,形参不改变实参的指向。

void fun1(int array[],int length)//和普通指针变量完全一样,所以避免混淆,最好使用指针变量作为形参。

{

int i=0;

printf("形参数组名:sizeof(array)=%d\n",sizeof(array));

for(;i

{

(*array)++;

}

}

int main()

{

int arr[MAXSIZE]={0,1,2,3,4,5,6,7,8,9};

int i=0;

int *p=arr;//p arr代表的都是数组的首地址。不过有区别

printf("数组名:sizeof(arr)=%d,指针变量名:sizeof(p)=%d\n",sizeof(arr),sizeof(p));//sizeof是一个操作符,返回一个数据类型所占的字节数。数组是一个数据类型.

//一般的数组名具有常量特性(数组名不是指针,但是值确实是一段地址的首地址),非左值,不能自加自减,同时也代表一种数据类型。

printf("调用函数以前:\n");

printf("实参数组名:arr=%d,sizeof(arr)=%d\n",arr,sizeof(arr));

printf("实参指针变量名:p=%d,sizeof(p)=%d\n",p,sizeof(p));

for(;i

{

if(i%5==0&&i!=0)

{

printf("\n");

}

printf("arr[i]=%d,",arr[i]);

}

fun1(arr,MAXSIZE);//实参利用数组名

fun1(p,MAXSIZE);

printf("调用函数以后:\n");

printf("实参数组名:arr=%d,sizeof(arr)=%d\n",arr,sizeof(arr));

printf("实参指针变量名:p=%d,sizeof(p)=%d\n",p,sizeof(p));

for(i=0;i

{

if(i%5==0&&i!=0)

{

printf("\n");

}

printf("arr[i]=%d,",arr[i]);

}

printf("\b \n");

return 0;

}

程序运行结果:数组名:sizeof(arr)=40,指针变量名:sizeof(p)=4调用函数以前:

arr[i]=1,arr[i]=2,arr[i]=3,arr[i]=4,arr[i]=5,arr[i]=6,arr[i]=7,arr[i]=8,arr[i]=9,arr[i]=10实参数组名:arr=2686688,sizeof(arr)=40实参指针变量名:p=2686688,sizeof(p)=4形参数组名:sizeof(array)=4形参数组名:sizeof(array)=4调用函数以后:实参数组名:arr=2686688,sizeof(arr)=40实参指针变量名:p=2686688,sizeof(p)=4arr[i]=2,arr[i]=3,arr[i]=4,arr[i]=5,arr[i]=6,arr[i]=7,arr[i]=8,arr[i]=9,arr[i]=10,arr[i]=11Process returned 0 (0x0)   execution time : 0.604 sPress any key to continue.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值