当前位置: 首页 > news >正文

C语言 字符指针

1、介绍

概念:

字符指针,就是字符类型的指针,同整型指针,指针指向的元素表示整型一样,字符指针指向的元素表示的是字符

假设:

char ch = 'a';char * pc = &ch; 

pc 就是字符指针变量,字符指针变量是用来存放字符的地址。

但是,字符指针除去单一的字符,还可以寄存字符串。

char * p = "abcdefghi";

而对于字符串而言,我们首先要知道,上述表达式中的字符串是一个常量字符串,无法被修改,且并不是将整个字符串的地址寄存在了字符指针变量p中。

而是将字符串的首个字符的地址寄存在了字符指针变量p当中。

就如同数组一样,数组名代表的仅仅是数组的首元素地址一样。

char * p = {'a','b','c','d','e','f','g','h','i','\0'} 

而且在进行打印 * p 之后,打印出的结果也仅仅是字符串的首个字符  a 

  2、对比

 如上所示,str1和str2都为数组,是数组之间的比较。

而str3和str4都为指针,是指针之间的比较。

在str1和str2的比较过程中,许多人会产生一个误区,为什么str1和str2的数组内容一致,但为什么不相等呢?

答案是,str1和str2虽然说数组的内容一致,但二者都身为数组,对于数组中寄存元素,首先要进行的是在内存中申请一个空间,而后,二者的数组名不同,自然申请的空间就并不相同。

其次,在申请空间后,空间中所代表的地址也并不相同,所以str1和str2的数组内容虽是相同,但二者在内存中申请的空间并不相同。

就像酒店的宾馆,虽然房间的配置一样,但你能说101牌号的房间等于102牌号的房间吗。

二者所处的空间根本不一致!

 而str3和str4,二者均为字符指针变量,且二者存储的内容都是同一个字符串中的首个字符,且寄存在字符指针变量中的字符串是常量字符串,无法进行修改。

所以二者指向的是同一个字符串,也寄存的是同一个地址,所以本质上,str3和str4是相同的。

http://www.lryc.cn/news/121674.html

相关文章:

  • Springboot所有的依赖
  • Flutter BottomSheet 三段式拖拽
  • php后端实现调用高德地图进行POI搜索
  • uniapp 实现滑动视图切换 顶部滚动导航栏
  • ArcGIS API for JavaScript 调用自定义地图模板总结
  • QGraphicsView实现简易地图5『经纬网格』
  • RestTemplate 请求转发异常 ERR_CONTENT_DECODING_FAILED 200 (OK)
  • 用python实现一个异或计算器
  • Sketch打不开AI文件?转换方法在这里
  • 小游戏扫雷实现教学(详解)
  • 04 mysql innodb record
  • Centos7安装Docker
  • Vue中如何更好地封装组件?
  • C语言的链表的相关操作
  • Python3中typing模块
  • C语言自动抓取淘宝商品详情网页数据,实现轻松高效爬虫
  • 数据结构---跳表
  • 为什么Tomcat的NIO在读取body时要模拟阻塞?
  • 26 | 谷歌应用APP数据分析
  • BFS 五香豆腐
  • opencv实战项目 手势识别-手势控制键盘
  • 1.作用域
  • 黑马B站八股文学习笔记
  • 前端常用的上传下载文件的几种方式,直接上传、下载文件,读取.xlsx文件数据,导出.xlsx数据
  • FPGA应用学习笔记--时钟域的控制 亚稳态的解决
  • AirServer是什么软件,手机屏幕投屏电脑神器
  • 如何使用 AT+WEBSERVER 指令实现自定义的 Webserver html 网页配网
  • 期权定价模型系列【4】—期权组合的Delta-Gamma-Vega中性
  • k8sday02
  • 黑马头条项目学习--Day2: app端文章查看,静态化freemarker,分布式文件系统minIO