c语言中数组名是指针常量吗,c语言什么时候使用数组,什么时候使用指针?

任何时候都可以使用数组,使用指针。

定义时,通常只有字符指针,和字符数组指针直接定义。用来表示字符串或字符串数组。

其他一般定义数组。操作时用指针或数组。

其他指针,多半用在参数传递,数据结构内部(不确定需要内存的大小,或者链表,二叉树等链式结构)的时候。

还有一种是有些函数参数就是指针,这时定义一个指针,来操作传进来的指针参数比较好。

指针作为参数,有一下几种用法,

1)当作数组用,用来获取或设置数组元素。

2)把一个比较长的数据结构传入函数,只需要一个指针就够了。

3)传入变量的地址,用来读取或修改变量的值,主要是为了修改用。

直接定义一个不指向任何对象的指针,并且也从不给他赋值,没什么意义;

指针要么指向数组,要么指向变量,要么动态申请内存。

NULL指针,只是一个方便的指针,表示不指向任何对象。

真正有用的还是指向具体对象的指针。

如果定义了一个指针,使用时要让他指向一个具体对象,当需要他不指向什么对象的时候,给他赋值为NULL;

PS:

C语言,数组名只是一个指针常量而已,离开定义可见处,数组大小的信息就不存在了。

只有定义完全可见的地方,才可以获得数组的大小。

数组作为函数的参数,和外部引用声明都不能获得数组的大小。

参数只能传递指针,参数的大小只是指针的大小;

只能看到声明的地方,获取数组大小的努力,只能换来错误。

void fun1(int a[10]) //<==> void fun1(int a[]) <==>void fun1(int *a)

{

}

void fun2(int [10][10])// <==>void fun2(int a[][10])<==> void fun2(int (*a)[10])

{

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值