几个问题的答案

1.数组名相当于一个指针吗?
  答: 数组名并不是指针,也不是常指针,它和一般的变量名一样都是内存地址的助记符。不过大多数情况下,当数组名用于表达式或做函数参数时会被转化为指针,指向第一个元素的指针,对于int arr[5]来说,指针的类型是 int *,对于int arr[5][6] 来说 指针的类型是 int (*)[6].
2.
关于字符串的strcat(char[],const char[])函数,为什么不把第一个字符数组声明为const?”  
答:
这个是要把数组传递给子函数操作,实际上只能传递的是该数组的指针,也就是子函数的数组指针指向的内容和主函数的是同一个,在子函数里修改其内容就是更改主函数里数组的内容。
把形参设置成const,子函数就无权中修改其内容,保护了数据的安全性。
所以在写传给子函数指针型数据时,如果不想(或不能)改变指针所指的数据,将指针的类型声明为const,即常量,这时可以防止在子函数里无意的改变其内容。但是对于简单的数据传递,由于是把数据复制到参数,子函数和主函数的数据完全不想干,就不用声明该数据是const型的。
如果第一的参数也是const的,这个函数就不能对第一个参数进行操作,从而无法实现函数的功能,即连接字符操作。  
3.实参与对应形参
之间的数据传递方式是值传递还是地址传递?  
答:是值传递,也就是单向传递。 
未完待续 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值