可以用malloc给结构体指针变量分配动态内存空间_指针——为你的C语言注入灵魂...

0x00

众所周知,指针是C语言的核心,没有搞懂指针就相当于没有学过C语言。今天我们就来仔细盘一下指针这个玩意。

本文正确食用方法:

1.没了解过指针的可以学习指针     

2.学习过指针但忘的差不多的可以用以回顾       

3.等未来忘了后用以温习指针(笔者写本文目的(ง •_•)ง)

0x01

什么是指针

指针是指向另一数据对象的变量(加粗),指针变量储存了它所指数据对象的地址信息。

0x02如何声明指针:

int *p;        // 声明一个 int 类型的指针 p

char *p        // 声明一个 char 类型的指针p

int *arr[6]   // 声明一个指针数组,该数组有6个元素,其中每个元素都是一个指向 int 类型对象的指针

*p          //访问p所指向的对象

&a           //这个就不用说了,取地址符

卖了半天关子,指针到底有什么作用呢?

--------------------------指针用法-------------------------

0x03

对函数调用的变量进行修改

我们知道,调用函数时,函数调用的参数其实是一种值传递,并没有对该变量产生影响。那么如果我们恰好就是要对该变量进行操作,那么就需要使用指针来实现

假设我们现在要使用函数来实现交换两个变量的值:

void swap(int a,int b){
            int temp;        temp = a;        a = b;        b = temp;}

显然,这样是行不通的,因为函数调用时,只会将变量的值传入函数,对该变量本身并不起作用。所以最终两个变量的值并没有交换。

此时,我们就要使用指针来进行值的交换:

void swap(int *a,int *b){
            int temp;        temp = *a;        *a = *b;        *b = temp;}

这样,就成功完成了指针的值的变换。在以上代码中,虽然变量的值本身并没有发生改变,但是指针和指针所指变量的指向关系改变了,如下图:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值