指针和数组替换和区别
指针和数组在很多方面都可以替换
为什么不直接用while(*str++ != '\0')涉及到了Lvalue和Rvalue的问题 // http://www.dotcpp.com/wp/692.html
例如有字符数组char a[100];当a做右值时候,我们可以把它赋给char *类型的指针,用来指向这个数组,这种情况下数组名做右值代表该数组首元素的首地址,是常量,是完全可以的。而数组名无论右值和还是左值,都代表是地址,是常量,因此它不可以做左值,因为常量不可被修改!所以不少同学试图再定义数组之后再试图对数组赋字符串都是错误的! // http://www.dotcpp.com/wp/692.html 《C语言中左值和右值得区别》
*target++,的意思是先取target地址的值,判断是否是'\0',再取(target+1)的值来判断
直到判断到了是'\0',就停止执行
PS:只要不是定义指针变量的*,就是取值的意思
总结:数组名是一个地址,指针是一个左值
转载于:https://www.cnblogs.com/EvilAnne/p/9690077.html
指针和数组替换和区别相关推荐
- 【软件开发底层知识修炼】二十七 C/C++中的指针与数组是不同的
上几篇文章学习了ABI-应用程序二进制接口:[软件开发底层知识修炼]二十六 ABI-应用程序二进制接口 学习总结文章目录 本篇文章就指针与数组的联系与区别来学习学习 文章目录 1 疑问 2 指针与数组 ...
- char *a 和char a[] 的区别(指针和数组的区别)
2019独角兽企业重金招聘Python工程师标准>>> 在C/C++中,指针和数组在很多地方可以互换使用,这使得我们产生一种错觉,感觉数组和指针两者是完全等价的,事实上数组和指针是有 ...
- 【C 语言】数组与指针操作 ( 数组符号 [] 与 指针 * 符号 的 联系 与 区别 | 数组符号 [] 与 指针 * 符号 使用效果 基本等价 | 数组首地址 与 指针 本质区别 )
文章目录 前言 一.数组符号 [] 与 指针 * 符号 使用效果 基本等价 二.数组首地址 与 指针 本质区别 前言 参考 [C 语言]指针 与 数组 ( 指针 | 数组 | 指针运算 | 数组访问方 ...
- 指针数组、数组指针、数组的区别与联系
指针数组.数组指针.数组的区别与联系! 一:基本定义 1.指针数组 char *arr[4] = {"hello", "world", "shannx ...
- C++指针和数组的区别(不能混用的情况)
通常情况下,C++中指针和数组是可以混用的,但是,在编写字符数组的全排列的时候,混用却出了问题,因此,今天特地mark一下,以备日后查找 这里整理的,不包括用new开辟的动态数组 1.数组一旦声明,我 ...
- 数组名与指向数组的指针之间的联系与区别【数据结构】
我们遇到一个非常棘手的问题,这个问题就是,对于一堆数据来说,我们进行存储,放到一个指定的仓库当中,先前我们使用数组加加标的形式进行访问仓库当中的元素位置,但是呢,现在我们使用的是一个指针结构,指针指向 ...
- C语言 指针和数组区别 - C语言零基础入门教程
目录 一.前言 二.指针和数组区别 1.通过 sizeof 获取大小 a.计算数组大小 b.计算指针大小 2.指针和数组赋值方式不同 a.指针赋值 b.数组赋值 3.指针是指针变量,数组是指针常量 三 ...
- C语言中指针和数组的区别
看<C专家编程>一书,看到数组与指针并不相同一章,遂做了一段测试: 代码: #include <stdio.h> #include <stdlib.h>int ma ...
- C语言中指针与数组的区别,C语言 指针与数组的详解及区别
C语言 指针与数组的详解及对比 通俗理解数组指针和指针数组 数组指针: eg:int( *arr)[10]; 数组指针通俗理解就是这个数组作为指针,指向某一个变量. 指针数组: eg:int*arr[ ...
最新文章
- java8新特性: lambda表达式:直接获得某个list/array/对象里面的字段集合
- [CLPR] 用于加速训练神经网络的二阶方法
- day10 局部变量 全局变量 作用域前奏
- Netweaver工作进程的内存限制 VS CloudFoundry应用的内存限制
- [转] UML中关联、依赖、聚集等关系的异同
- insert mysql后加where,如何在MySQL Insert語句中添加where子句?
- mysql事务与jdbc事务_事务(mysql事务、jdbc事务)
- ansys怎么使用anand模型_详细剖析ANSYS有限元分析这个软件
- 获取WebView缩放控件,并对其进行改造
- Qimage像素级操作
- 用Xenu检查死链发现域名后有//
- 河南郑州—2018区块链传统行业创新峰会
- 网易跨域实现笔记以及顺便发现的XSS
- 关于trunk的几个端口模式
- android usb联接网络打印机,打印到USB或预先选择的网络打印机从嵌入式android
- 关于期刊审稿与同行评审,论文“不为所知”的拒稿秘密在这里
- 【5G网络优化工程师课程5——5G空中接口物理层(物理信道/信号——PDCCH】
- system占用cpu过高查找问题思路
- 分布式文件系统FastDFS详解-附带视频教程
- 复数运算(对数,指数,正弦)
热门文章
- 文件流、目录流、文件描述符总结
- ad如何选中当前层上的器件_82条AD转换设计经验总结!
- LeetCode 2062. 统计字符串中的元音子字符串
- LeetCode 1826. 有缺陷的传感器(枚举)
- LeetCode 1689. 十-二进制数的最少数目(脑筋急转弯)
- LeetCode 514. 自由之路(记忆化递归 / DP)
- LeetCode 1624. 两个相同字符之间的最长子字符串
- LeetCode 1061. 按字典序排列最小的等效字符串(并查集)
- LeetCode 1409. 查询带键的排列(map模拟)
- java 动态队列_RabbitMq之动态修改队列参数