C语言指针详解

在16位windows的时候,由于采用分段内存管理模式,指针分长指针和短指针,长指针包括一个段地址和位移地址,而短指针仅是在约定的段地址下的一个位移地址。


现在从32位windows起,采用平面内存管理模式,可直接用32位的指针访问平面线性内部。
在c语言中,指针类型的灵活性很强,不仅可以指向各种原子类型,还可以指向复合类型,甚至还能指向函数,文件等等。指针,说白了,就是一个指向内存块的地址。


指针经常用于指向动态分配的内存,内存分配后得强制转为和指针相同的类型,一般用作链表,广义表,二叉树等,当然,内存就放在那,随你怎么用,只要小心上溢和下溢就行,在程序运行时根据用户的需求分配内存空间也行。但用完最好立即释放掉,如果你觉得内存充足,也可在程序结束后由os回收。


指针支持算术,取值,取址,还有关系运算。


指针也具有传递性,而传递可修改指针,被调函数可用二级指针(即多级指针);指向字符串的指针,被调函数则可用字符数组;当然还有其他的奇淫技巧。


指针有两种不能访问,一是空指针,二是野指针。


此外,指针还有常量指针和指针常量之分,也别把数组指针和指针数组搞混了,int *p[n],p先与[]结合,则为数组,也就是指针数组;而int (*p)[n],p先与*结合,则为指针,也就是数组指针。


以上只是基础,更多操作技巧还待大家发掘!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值