【好程序员训练营学习笔记分享1】--c语言指针(一)
来源:互联网 发布:理肤泉淘宝旗舰店 编辑:程序博客网 时间:2024/05/16 01:40
<A href="http://www.goodprogrammer.org/" target="blank">ios培训</A>------我的c语言笔记,期待与您交流!
指针(一)
c语言学了很多遍了,发现最难的地方还是指针部分,今天把对指针的个人理解发出来,如果有不对请高人指点。
一、指针的定义:官方的定义请参考百度,我这里给大家举个例子:
把一个村庄比喻为你的内存,则每户人家就是我们经常用的变量,快递员要给你送东西,是不是必须要知道你家的门牌号,而这个门牌号就是指针,记录着你家在这个村庄的具体位置。那么指针就记录着每个变量在内存中的位置。
二,数组中的指针:学过c的人都知道数组名本身就是地址,那么&a是什么呢?它和a有啥区别?
a和&a的地址一样,但是含义不一样。a是数组首地址,a[0]的地址,a+1的意义是数组下一元素的地址;&a是对象(数组)的地址,&a+1的意义是下一对象的地址。
三、指针的加减:1、对指针加1是下一个元素的地址而不是在指针的值上加1,类型为t的移动是以sizeof(t)为单位移动的。
例如 int a[5]={1,2,3,4,5};那么int *p=(int *)(&a+1);则*p的值则为a[5]的地址,因为加的值是数组a的大小(5*sizeof(int))
四、指针常量和常量指针(前面的两个字是修饰的 后面才是主体)
a) ,常量指针:指向常量的指针,指针可以随便指但是指针所指向的空间的值不能变;const 位于*的左侧的时候 const char * p;
b) 、指针常量:它的第一身份是常量,第二身份才是指针,所以它本身不能随便指了,但是它所指向的空间的值可以变。Const 位于*右侧的时候 char *const p
五、指针数组和数组指针
数组指针:指向数组的指针;指向一维或多维数组的指针,int (*p)[5];释放的时候一定要用delete[],例如一个二维数组a[3][4]赋值给数组指针的时候:
int (*p)[4]=a; p++;的时候p依次指向a[0],a[1],a[2].三 个地址,也就是分别移动了三行所以它也是行指针。
指针数组:一个数组的元素都是指针;int *p[5],有五个指向整形变量的指针。例如一个二维数组a[3][4]赋值给数组指针的时候:
int *p[3]=a;for(i=0;i<3;i++)p[i]=a[i];p[i](p[0]、p[1]、 p[2],)分别是a[0],a[1],a[2]。
- 【好程序员训练营学习笔记分享1】--c语言指针(一)
- 【好程序员训练营学习笔记分享2】指针(二)
- 【好程序员训练营学习笔记分享3】结构体(一)
- 【好程序员训练营学习笔记分享4】结构体(二)
- 【好程序员训练营学习笔记分享5】结构体(三)
- 好程序员训练营——C语言笔记1-基础知识
- 【好程序员笔记分享】—— C语言指针的理解
- 【好程序员训练营学习笔记分享6】带你真正了解负数补码的计算
- 【好程序员训练营学习笔记分享7】共用体和枚举类型
- 【好程序员训练营学习笔记分享8】c++ 继承及构造函数
- 【好程序员训练营学习笔记分享9】c++ 虚函数和多态
- 【好程序员训练营学习笔记分享10】c++ 容器的运用
- 【好程序员笔记分享】—— C语言中的枚举
- 【黑马程序员】C语言学习笔记之指针(十一)
- C语言指针学习笔记一
- C语言学习笔记之指针篇(一)
- 黑马程序员-C语言学习笔记(一)
- 黑马程序员-C语言学习笔记-----指针学习
- Erlang edoc 多级目录出错
- 桌面widget、快捷方式和Hotseat
- iOS10进制到16进制互转
- CentOS 7 yum 安装 MongoDB
- Cloud Foundry service broker开发部署实例解析(上)
- 【好程序员训练营学习笔记分享1】--c语言指针(一)
- hadoop启动namenode失败
- RabbitMQ Hello World
- 摄氏温度和热力学温度转换
- HDU3652
- Hibernate Criteria条件Restrictions.or查询 循环多个or条件
- Android自定义TextView实现跑马灯功能
- 能保存Properties文件注释的Properties工具类
- Flipping Parentheses (线段树 单点更新 区间查询)