C语言二维数组的地址与指针

需积分: 19 2 下载量 106 浏览量 更新于2024-07-14 收藏 1.41MB PPT 举报
"二维数组的地址-C语言程序设计指针" 在C语言中,二维数组可以看成由多个一维数组组成。例如,int a[3][4]={ {0,1,2,3},{4,5,6,7},{8,9,10,11} };可以看成是由a[0]、a[1]、a[2]三个元素组成的一维数组。a[0]、a[1]和a[2]又都是一维数组,它们的数组名分别叫a[0]、a[1]和a[2]。 由于数组名是指针,所以a[0]、a[1]和a[2]为一级指针,它们的基类型是int。二维数组a是由三个一级指针组成的数组。 在C语言中,指针是非常重要的概念。指针是变量的地址,变量的地址是指向内存中某个存储单元的编号。指针变量是专门存放地址的变量。例如,int *p;这里的p就是一个指针变量,它可以存放一个整型变量的地址。 指针与数组有密切的关系。例如,int a[3][4];这里的a是一个二维数组,它可以看成是由三个一级指针组成的数组。a[0]、a[1]和a[2]都是一级指针,它们的基类型是int。指针变量可以指向数组,例如,int *p = a[0];这里的p指向a[0]这个一维数组。 指针与函数也有密切的关系。例如,int *f();这里的f是一个函数,它返回一个整型指针。函数可以作为参数传递给另一个函数,例如,void g(int *p);这里的g函数接受一个整型指针作为参数。 在C语言中,指针的运算非常重要。例如,指针的加法和减法运算,指针的比较运算等。指针的运算可以分为两大类:指针的算术运算和指针的比较运算。指针的算术运算包括指针的加法和减法运算,例如,int *p = a[0];p++;这里的p指向a[0]这个一维数组,然后p++;使得p指向a[1]这个一维数组。指针的比较运算包括指针的等于、不等于、大于、小于、大于等于、小于等于运算,例如,int *p = a[0];if(p == a[1]) printf("p equals a[1]");这里的p和a[1]进行比较,如果相等则输出“p equals a[1]”。 二维数组的地址在C语言中是一个非常重要的概念,它可以帮助我们更好地理解指针和数组的关系,并且可以帮助我们更好地理解指针的运算。