C语言指针

1)指针定义

      类型名 *指针变量名 datatype *name; 或 datatype * name = &value;

      普通指针: int val =0; int* p= &val;

      数组指针  

      int (*p) [3]; p+1-->12字节

      使用:

      int arr[3];

      int* pointer = arr;poiner+1; 4字节

      int (*p) [3] = &arr; //将arr看做整体

      函数指针

      int* p = &val; p = &a; p=&b;

      *p =10;

      int add(int a,int b) {return a+b;}

      int mul(int a,int b) {return a*b;}

      函数名含义:函数入口地址

      指针定义:

      int (*p)(int,int) = add;

      add(1,2);

      p=mul;

      p(1,2); //调用mul函数

    

     函数指针声明

     typedef int (*PFun)(int,int);

     PFun p = add;

     p(1,2); //add(1,2)

     p = mul;

     p(1,2); //mul(1,2)

2) 普通指针使用  

     int val=0; 

     int* p = &val; p是整型变量指针,val是整型变量

     *p=&val;                

     *p=1; 解引用

     数组指针int arr[3];

     int* pointer = arr;poiner+1; 4字节

     int (*p) [3] = &arr; //将arr看做整体

3)判断大小端问题

      大端字节序存储:(低高,高低)

              把一个数据地位字节处的数据存放在高地址处,高位字节处的数据存放在低地址处。

      小端字节序存储: (低低)

              把一个数据地位字节处的数据存放在低地址处,高位字节处的数据存放在高地址处。

      VS中使用小端存储

4)指针+-1能力

      int* p; p+1; 指针偏移4字节;

      char* p; p+1; 指针偏移1字节。

     指针-指针

     指针-指针的操作得到的是指针和指针之间元素的个数, 前提是两个指针必须指向同一块空间。

5)指针数组

      定义一堆字符常量 --> 字符串常量 数组

         *const char* arr[]={"abc","hello","world"};

6)指针与const结合

       int * const p =&a; 限制指针本身, 指针变量本身的值不能被修改

       const int *p = NULL; int const *p = NULL; 限制指针变量指向的数据

       const int * const p = &a; 限制指针变量和指针变量指向的数据的值

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值