1:先看一个错误例子:数组的定义等同于指针的外部声明?
2:回忆定义与声明区别
3:"地址"与"地址的内容"区别
首先我们应该知道"地址y"与"地址y的内容"的区别,以赋值语句为例:x=y
左值可以标记一个存储的位置,右值可以指定一个值。
L-value中的L指的是Location,表示可寻址。The "l" in lvalue can be though of as location
R-value中的R指的是Read,表示可读。The "r" in rvalue can be thought of as "read" value.
注意1:数组名,函数,函数调用,枚举常量,赋值表达式,强制类型转换(目标类型是引用时除外)不能为左值,即只能为右值。
注意2:下列运算符的操作数必须为左值
取地址运算符 & , ++ 运算符, -- 运算符,赋值 = 运算符的左操作数,成员 . 运算符的左操作数。
例子:
4:对指针和对数组下标的引用的区别
对数组下标的引用:
对指针的引用:
对指针进行下标引用
由上可知上述错误例子是由于定义与声明之间不匹配;
5:指针与数组区别
6什么时候数组与指针相同
7:数组形参和指针等同
补充:实参数组名相当于指针常量,不可修改,但形参数组名实质上就是指针可修改。
例子:
8:数组和指针可交互性总结