【嵌入式】Linux C编程——数组与指针

1、小心对待数组后面的元素的地址:

在计算机上,地址是由两部分组成:第一部分是指向某一块内存的起始点的指针(基地址);第二部分是相对于这块内存起点的地址偏移量。这种结构被称为段地址结构
如果一个数组放在了基地址的位置,就没有数组前面的元素这种说法了;同理,如果数组放在该内存的最后的位置上,数组后地址就没有意义了。

2、数组作为参数:

当把数组作为函数的参数时,没有办法在程序运行时通过数组参数本身来获得该数组的大小,因为函数的数组参数相当于指向该数组第一个元素的指针。

3、常量指针和指针常量:

(1)const char * p;
(2)char * const p=a;

语句1定义了一个常量指针,即指向一个常量的指针,指向的内容是常量,不可修改。但是指针本身是可以修改的,指针可以指向不同的地址;语句2定义了一个指针常量,即指针本身是一个常量,但是指针指向的内容是可以修改的。
指针常量和常量指针可以通过const*的位置来判断,当const*之前时,就是常量指针;当const*之后,就是指针常量。

注意:

①、如果指针常量指向的是字符串变量,那么当修改*p时,原则上可以修改,在编译时能通过,但是运行时不能通过,因为它试图修改常量区的内容,显示是非法的;
②、当指针常量指向另一个指针A时,当指针A指向别的内容时,指针常量还是指向原先的内容。

4、函数指针与指针函数:

①、函数指针:指向函数的指针,定义为:数据类型 (*fun)(参数列表);
②、指针函数:返回值为指针的函数,定义为:数据类型*fun(参数列表);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值