征服C指针学习笔记

1.对变量使用&运算符,可以取得该变量的地址。这个地址称为指向该变量的指针。

   指针变量hoge_p保存了指向其他变量的地址的情况下,可以说“hoge_p指向hoge”。

  对指针变量运用*运算符,就等于它指向的变量。如果hoge_p指向hoge,*hoge_p就等于hoge。

2.指针之所以需要定义类型是因为需要利用指针类型来从对应的地址中取出数据。

3.对指针加N,指针前进“当前指针指向的数据类型的长度*N”。

4.空指针是一个特殊的指针值。空指针是指确保没有指向任何一个对象的指针。

   空指针确保它和任何非空指针进行比较都不会相等,因此经常作为函数发生异常时的一个返回值使用。

   通常使用宏定义NULL来便是空指针常量值。#define NULL  0

5. p[i]是*(p+i)的简便写法。p[i]可以写成i[p],但是别写成这样。

    *p++是指p先加1再与*结合。

6. malloc()主要有两种使用方式,①动态分配结构体②分配可变长数组。

    ANSI C以前的C,因为没有void*这样的类型,所以malloc返回值的类型就被简单的定义成char*。char*是不能被赋给指向其他类型的     指针变量的,因此在使用malloc()的时候,必须要像下面这样将返回值进行强制转型:

book_data_p=(BookData*)malloc(sizeof(BookData));

7.如何解读C的声明:

❶首先着眼于标识符(变量名或者函数名)。

❷从距离标识符最近的地方开始,依照优先顺序解释派生类型(指针、数组和函数)。优先顺序说明如下,

①用于整理说明内容的括弧

②用于表示数组的[ ],用于表示函数的( )

③用于表示指针的*

解释完派生类型,使用“of”、"to"、"returning"将它们连接起来。

❹最后,追加数据类型修饰符(在左边,int、double等)。

比如  int (*func_p)(double);   

解读:func_p is pointer to function(double) returning int.

中文:func_p是指向返回int的函数(参数为double)的指针。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值