- 数组的地址与其第一个元素的地址相同。
- 若s为数组,t为指针,则&s==s,&t!=t
- 指针衰变:当把一个数组赋值给指针变量时,指针变量只含有数组的地址而不包含数组的长度。因为编译器在编译时并不会给数组分配内存,所以数组的长度无法知晓。这种导致部分信息丢失的现象,叫做衰变(pointer decay)
- array[0]==*array
- 指针运算(pointer arithmetic) : array[i]==*(array+i)
- 不同的指针类型运算的结果有差异,由于char占一个字节,所以char加1其地址会向下移一个字节,而int占四个字节,所以int加1其地址会向下移四个字节
- 诸如3[doses]表现形式的转换过程
doses[3]==*(doses+3)== *(3+doses)==3[doses]
- 为什么C语言中,数组的元素从0开始计数?
在支持指针的语言中,标号被视作是偏移量,因此从0开始更符合逻辑