c程序设计第四版课件第章蒸善于利用指针
对运算符“”和“*”的说明: (1)point_1=a;则*point_1是什么? “”和“*”优先级相同,但自右向左结合,于是*point_1等同于a; (2) *a的含义?与a等价; 注意: 如果a是一维数组,a[i]代表a数组中第i个元素。a[i]是有物理地址的,是占内存单元的;如果a是二维数组,则a[i]代表一维数组名。a[i]本身并不占实际的内存单元,也不存放a数组中各元素的值。它只是一个地址。所以a、a+i、a[i]、*(a+i)、*(a+i)+j、a[i]+j都是地址。*(a[i]+j)、*(*(a+i)+j)是二维数组元素a[i][j]的值。 注意: 不要把 a[i]简单地理解为 a[i]单元的物理地址,因为并不存在 a[i]这样一个变量。它只是一种地址的计算方法,能得到第i行的首地址, a[i]和a[i]的值是一样的, 但它们的含义是不同的。 a[i]或a+i指向行,而a[i]或*(a+i)指向列。当列下标j为0时,a[i]和a[i](即a[i]+j)值相等,即它们具有同一地址值。对二维数组,a+i不是指向具体存储单元而指向行。在二维数组中, a+i=a[i]=*(a+i)=a[i]=a[i][0],即它们的地址值是相等的。请仔细琢磨其概念。 字符串的表示形式: (1)char string[]=“China!”; (2)char *strin
原创力文档

文档评论(0)