zoukankan      html  css  js  c++  java
  • C字符串指针遇到的问题

    看下面的示例代码:

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

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

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

  • 相关阅读:
    Hive学习笔记三
    spark之RDD练习
    Python之QRCode
    Zookeeper学习笔记一
    Docker学习笔记一
    MapReduce异常:java.lang.ClassCastException: interface javax.xml.soap.Text
    Hive学习笔记二
    Hive学习笔记一
    5.线性回归算法
    4.K均值算法
  • 原文地址:https://www.cnblogs.com/ranwuer/p/8359671.html
Copyright © 2011-2022 走看看