还记得大一学指针的时候,小六写的那个绕口令:一个指向指向变量的指针的指针变量是一个指向二维数组的指针变量。哈哈哈,一晃两年过去了。涛哥说过要像猪同样的活就得学会怎么像狗同样的活,否则你就得猪狗不如的活着……
步入正题,说说一道题弄懂指针。
#include<stdio.h>
#define FORMAT "%d,%d\n"
void main()
{
int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
printf(FORMAT,a,*a);//0行首地址,0行0列元素地址
printf(FORMAT,a[0],*(a+0));//0行0列元素地址
printf(FORMAT,&a[0],&a[0][0]);//0行首地址,0行0列元素地址
printf(FORMAT,a[1],a+1);//1行0列元素地址,1行首地址
printf(FORMAT,&a[1][0],*(a+1)+0);//1行0列元素地址
printf(FORMAT,a[2],*(a+2));//2行0列元素地址
printf(FORMAT,&a[2],a+2);//2行首地址
printf(FORMAT,a[1][0],*(*(a+1)+0));//1行0列元素值
}
只要把注释看懂,而后本身写一遍就能了然咧!