zoukankan      html  css  js  c++  java
  • 指针和数组替换和区别

    指针和数组在很多方面都可以替换

    为什么不直接用while(*str++ != '')涉及到了Lvalue和Rvalue的问题  // http://www.dotcpp.com/wp/692.html 

    例如有字符数组char a[100];
    
    当a做右值时候,我们可以把它赋给char *类型的指针,用来指向这个数组,这种情况下数组名做右值代表该数组首元素的首地址,是常量,是完全可以的。
    
    而数组名无论右值和还是左值,都代表是地址,是常量,因此它不可以做左值,因为常量不可被修改!所以不少同学试图再定义数组之后再试图对数组赋字符串都是错误的!
     // http://www.dotcpp.com/wp/692.html  《C语言中左值和右值得区别》

    *target++,的意思是先取target地址的值,判断是否是'',再取(target+1)的值来判断

    直到判断到了是'',就停止执行

    PS:只要不是定义指针变量的*,就是取值的意思

    总结:数组名是一个地址,指针是一个左值

  • 相关阅读:
    10/11
    el表达式的坑
    在idea下两个项目之间的maven父子级项目依赖
    树上任意两点间距离
    优先级顺序
    HDU 6447
    KMP
    cf 1029 C
    牛客练习赛25
    莫比乌斯算法
  • 原文地址:https://www.cnblogs.com/EvilAnne/p/9690077.html
Copyright © 2011-2022 走看看