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:只要不是定义指针变量的*,就是取值的意思

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

  • 相关阅读:
    c++:函数模板
    1084 外观数列
    1083 是否存在相等的差
    1082 射击比赛
    1081 检查密码
    1080 MOOC期终成绩
    1079 延迟的回文数
    1078 字符串压缩与解压
    1077 互评成绩计算
    1076 Wifi密码
  • 原文地址:https://www.cnblogs.com/EvilAnne/p/9690077.html
Copyright © 2011-2022 走看看