C语言——数组与指针进阶(二)
来源:互联网 发布:淘宝评价怎么修改好评 编辑:程序博客网 时间:2024/06/05 20:25
C语言中能否灵活应用指针就能看出你的C语言功底如何,接下来是我对在学习指针过程中,对一下较为苦涩概念的理解及总结。
一、指针的运算
指针的运算可归纳为以下三部分:
1、指针 +/- 整数
一般来说,此类运算只是左右移动指针所指向数组元素的位置而已;若指针指向的是&数组名,此时其加1,则移动的是一个数组了,不是一个元素;
2、指针 - 指针
此类是用与求两指针间数组元素的长度(两指针需指向同一数组)
3、指针的关系运算(<、<=、>、>=)
此时可通过地址大小的比较来遍历数组
具体事例有以下代码:
void main(void){ int a[5]; int *p = a; int *q = &a[4]; int i = 0; for( ; p<=q; p++) { *p = i; i++; }}
二、常量指针与指针常量的理解
1、常量指针:const char *p1
可以这么理解:去掉类型名为const (*p1),常量的指针,即指向一个常量的指针,特点:指向可以改变,当必须指向的变量必须是一个常量;
2、指针常量:char * const p2
指针的常量,即该指针是一个常量,特点是:指针的指向不能改变,但是能改变其所指向变量的值;
void main(void){ const char *p1; //等价于char const *p1; char * const p2; char a = 'a', b = 'b'; char A = 'A', B = 'B'; p1 = &a; *p1 = 'A'; //错误,不能改变其变量的值,其指向是一个常量 p1 = &A; //正确,可以改变指向的变量 p2 = &b; *p2 = 'B'; //正确,可以改变所指向变量的值 p2 = &B; //错误,该指针是一个常量,不可以改变指向的变量}
三、指针函数与函数指针
指针函数:指针类型的函数,返回值是一个指针(注意:该指针要是一个全局变量的地址),如:
char p(int , int *);
函数指针:函数的指针,指向某一类函数类型的指针
char (pfun)(int , int *);
阅读全文
0 0
- C语言——数组与指针进阶(二)
- C语言——数组与指针进阶(一)
- C语言指针系列二——指针与数组
- C语言 数组与指针(二)
- C语言——数组与指针
- c语言 —— 指针与数组
- C语言——数组与指针
- c语言基础—指针与数组
- C语言—指针与数组
- C语言——指针与数组(下)
- C语言指针学习(二) ---- 指针与数组
- C语言学习——指针与数组、空指针
- C语言深度剖析之—指针与内存地址(函数指针,普通指针,指针数组,数组的指针,指针的指针)
- C语言深度剖析之—指针与内存地址(函数指针,普通指针,指针数组,数组的指针,指针的指针)
- C语言深度剖析之—指针与内存地址(函数指针,普通指针,指针数组,数组的指针,指针的指针)
- C语言的指针(进阶篇章之二)
- Linux 下C语言 指针学习 二 (数组与指针)
- C语言—指针数组
- 014. Spring JdbcDaoSupport访问数据库
- window 安装anaconda(内置numpy与scipy) 可以作为科学计算使用
- javabean
- Linux下安装多版本的Opencv
- 列车售票的可线性化编程-Java
- C语言——数组与指针进阶(二)
- linux部署服务器遇到的问题(四)
- RadioButton和CheckBox用法及监听
- 消息队列activemq整合spring发送端和接收端配置
- Socket中粘包的坑的处理
- 51nod 1169 石子游戏
- Linux下部署多个Tomcat端
- mysql数据库常用命令
- WEBVX辅助小程序。纯协议