C语言笔记之指针的初步认识

        从学C语言到现在,也一年多了,指针作为C语言中最重要的一个知识点,人们也称指针是C语言的灵魂,然而对于指针的掌握,感觉远远不够 指针在数据结构中也是很重要的,贯穿链表、栈、队列等,要想真正的学好和领悟数据结构的知识,指针功底一定要扎实。确实,这一年来,每次用到指针或是回头看指针的内容,都会有不同感受,所以决定 通过资料整合,结合 自己对指针的理解 写一个总结,算是对指针的一次复习吧。

1、什么是指针:

指针是一种数据类型(*在指针声明时,*指示声明了一个指针变量。指针变量实际就是一个整数,存储着一个内存地址计算机中的内存都是编址的,每个地址都有一个符号

指针变量是占有内存空间的

2、指针的用法

1在指针使用时,*号表示操作指针所指向的内存空间中的值

*p相当于通过地址(p变量的值)找到一块内存;然后操作内存

*p=*p放在等号的左边赋值,表示所指向的内存赋值

    =*p*p放在等号的右边取值表示从内存获取值

(2)使用指针实现间接赋值(间接赋值是指针存在的最大意义)

首先要明确一个概念:指针变量和它所指向的内存块变量是两个不同的概念

定义一个指针变量*p

①在给p赋值时,只会改变p所指向的内存地址(指针变量的值),并没有改变p所指向的内容(内存块的值)

*p赋值*p='a'; 不会改变p所指的内存地址指针变量的值,只会改变所指的内存块的值 

接下来看看间接赋值的理解:

int *p=NULLint *p,p=NULL;//定义一个指针变量p,他的地址为0

int a=10;

p=&a;//a的内存地址赋给p

*p=20;//改变p所指的内存块的值,也就是改变了a的值

上面就是指针通过地址来间接修改变量的用法
     这仅仅是对指针的一个初步认识,指针有一级指针、二级指针、三级指针等,还有野指针,指针数组和数组指针等知识点。对于指针的学习,目前掌握的远远不够,但是要想有好的基本功底,就应该要去啃透它,加油!

文章的最后,本人有个小疑问,一旦定义了一个变量,系统就会自动给变量分配内存,那是不是每一个内存都含有两个元素:内存地址值和内存块的值?也不知表达的对不对?

 以上文字出于个人的学习笔记,如若有问题,欢迎提出!

                                                                 ————总有一天,你将破蛹而出!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值