看下面的示例代码:

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。

转载于:https://www.cnblogs.com/ranwuer/p/8359671.html

C字符串指针遇到的问题相关推荐

  1. C语言中字符数组和字符串指针分析

    写下面的测试程序: #include <stdio.h> int main(int argc, char *argv[]) { char day[15] = "abcdefghi ...

  2. 【C 语言】指针 与 数组 ( 指针 | 数组 | 指针运算 | 数组访问方式 | 字符串 | 指针数组 | 数组指针 | 多维数组 | 多维指针 | 数组参数 | 函数指针 | 复杂指针解读)

    相关文章链接 : 1.[嵌入式开发]C语言 指针数组 多维数组 2.[嵌入式开发]C语言 命令行参数 函数指针 gdb调试 3.[嵌入式开发]C语言 结构体相关 的 函数 指针 数组 4.[嵌入式开发 ...

  3. 第十节 字符串指针变量与字符数组的区别(十一)

    用字符数组和字符指针变量都可实现字符串的存储和运算.但是两者是有区别的.在使用时应注意以下几个问题: 1) 字符串指针变量本身是一个变量,用于存放字符串的首地址.而字符串本身是存放在以该首地址为首的一 ...

  4. java char指针数组_sizeof与strlen使用,字符串指针数组

    1.sizeof和strlen的使用示例: 2.对于字符串指针长度的查询: 代码示例: char *AudioMode[7] = {"Type&","Mode&a ...

  5. C#调用C++DLL的小总结8---C++Dll中函数返回字符串指针

     C#调用C++DLL的小总结8---C++Dll中函数返回字符串指针 在这个系列的"C#调用C++DLL的小总结6---C++Dll中指针的释放问题 "中曾经详细说过类似的问 ...

  6. C++ 字符串指针与字符串数组

    在做面试100题中第21题时,发现char *astr="abcdefghijk\0";和char astr[]={"abcdefghijk"};有点区别,以前 ...

  7. 怎样在vs中监视char*字符串_字符串指针数据类型

    一.前言 在实际开发中,特别是芯片开发中,例如智能传感器芯片,经常直接使用C语言指针数据类型来操作寄存器.那么字符串指针就是我们常见的操作. C语言没有单独的字符串对象,它是通过数组的形式来表示字符串 ...

  8. C 温故知新 之 指针:数组指针、字符串指针、函数指针

    一.数组指针  1.指向数组元素的指针 1.定义:还是那句话通俗的说指针就是地址 数组指针     :数组的起始地址 数组元素指针:数组元素的地址 2.定义一个指向数组元素的指针变量的方法,与之前介绍 ...

  9. C++ 字符串指针和字符串指针数组详解

    C++处理字符串有两种方式,即:指针方式和数组方式 数组方式:char a[] = "HelloWorld"; 指针方式:const char* s = "HelloWo ...

  10. C/C++混淆点-字符串指针

    c语言中没有字符串的类型, 所以对字符串操作,有两种形式:可以用字符指针,或者字符串数组(这里的指针变量c, 系统会为其重新分配内存) (1)用字符数组存放一个字符串 char string[]=&q ...

最新文章

  1. oracle中asm磁盘不足,Oracle用户无法访问ASM磁盘组问题
  2. 前端交接文档_开发型Web前端和设计型Web前端的区别是什么?
  3. jquery实现全选、取消反选、加JavaScript三元运算(三种法法实现反选)
  4. 交互设计的114条原则
  5. 查询数据库中所有表名
  6. 基于JAVA+SpringMVC+MYSQL的求职招聘管理系统
  7. mysql多实例访问代理_一台MySQL数据库启动多个实例
  8. wireshark学习使用
  9. 设计模式-1-单例模式
  10. 中证协 | 安青松:“金融+科技”是证券业高质量发展的战略引擎
  11. 计算机数据结构考研知识点汇总,数据结构考研知识点总结.pdf
  12. ascii码01100001_ASCII码对照表以及各个字符的解释(精华版)
  13. python aiml开发文档_使用Python AIML搭建聊天机器人的方法示例
  14. C# 将Excel导出PDF
  15. 使用ML.NET实现健康码识别
  16. html实现凹陷效果,css3怎么实现字体凹陷凸出效果?(附代码)
  17. OSChina 周日乱弹 ——程序员在家的地位
  18. css动画其他div,删除另一个div时的CSS3 Transition动画
  19. c语言程序设计流星雨,流星雨的实现C语言程序设计
  20. 感悟+北京and新疆知识点

热门文章

  1. 使用layui实现后台数据表格显示时的需要修改的地方(包括后台)
  2. Spring @Aspect、@Before、@After 注解实现 AOP 切面功能
  3. 小D课堂 - 零基础入门SpringBoot2.X到实战_第9节 SpringBoot2.x整合Redis实战_37、分布式缓存Redis介绍...
  4. 阶段3 2.Spring_08.面向切面编程 AOP_6 四种常用通知类型
  5. 阶段3 2.Spring_08.面向切面编程 AOP_5 切入点表达式的写法
  6. MFC在一个工程中启动其他工程的exe文件
  7. OC实现带弹跳动画按钮的界面控制器view
  8. git使用笔记(二)分支与合并
  9. JavaMail简单版实验测试
  10. win32使用拖放文件