C语言学习Day4

  • 数组的地址与其第一个元素的地址相同。
  • 若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开始更符合逻辑

猜你喜欢

转载自blog.csdn.net/sinat_37012750/article/details/86026315