看下面的示例代码:

int main()
{
char *ptr = "GeeksQuiz";
printf("%c\n", *&*&*ptr);
return 0;
} // 结果为
// G

字符串在内存中是以数组的方式来表示,*ptr指向字符串数组的第一个元素。

关键代码:*&*&*ptr 。首先,*号和&号的优先级是一样的,结合方向是从右往左。第一个,*ptr指向第一个元素,提取出来就G;第二个&*ptr,表示取出*ptr的地址,这里可以这样理解,*ptr表示一个变量内容,在变量内容前面加一个取址符号,表示取出这个变量的地址;第三个,*&*ptr,可以写为*(&*ptr),由于括号里面的内容表示一个变量地址,在变量地址前面加上一个*号,则表示取出这个变量内容;可以在*ptr前面加多个 *&对,最后的结果都是一样的。比如当前这个例子在*ptr前面加了2个*&对。我还可以再加2个*&对,它的值还是不变:*&*&*&*&*ptr 还是等于G。

最新文章

  1. 一眼看懂KMP匹配算法
  2. rndc控制远程dns服务器配置方法
  3. KinderEditor编辑器使用
  4. sklearn 组合分类器
  5. 上载android应用的apk文件变成了zip-网下转载的解决方案
  6. Java泛型数组
  7. Java中几种常见的排序方式
  8. Seay工具分享
  9. Android 修改屏幕解锁方式
  10. LCS 51Nod 1134 最长递增子序列
  11. 初学HTML5,你要懂得哪些?
  12. HDFS(数学题)
  13. Python数据运算
  14. html5与css 1. web标准及组成
  15. 14.python与数据库之mysql:pymysql、sqlalchemy
  16. vue引用样式
  17. drupal drush 在windows下的安装和配置
  18. vsftp客户连接常见故障现象
  19. Linux内核线程kernel thread详解--Linux进程的管理与调度(十)【转】
  20. scrapy 的基本命令

热门文章

  1. 批处理(cmd)的学习记录
  2. 关于<?php exit;?>"的绕过问题
  3. hdoj3664【DP】
  4. CF1045G AI robots(动态开点线段树)
  5. UVA - 10817 Headmaster's Headache
  6. 解决 Xshell 连接出现 The remote SSH server rejected X11 forwarding request 问题
  7. git apply
  8. Luogu P3393 逃离僵尸岛【最短路】By cellur925
  9. UITableViewCell添加点击时改变字体的颜色、背景、图标
  10. C++ multiset通过greater、less指定排序方式,实现最大堆、最小堆功能