C语言_指向多维数组的指针.ppt
文本预览下载声明
Chapter 8善于利用指针 Contents BHJSJ 8.8 动态分配内存 需要时申请,不需要时释放。 目的:提高内存的利用率。 malloc(100) //开辟10字节的空间,返回值为 空间首地址。 int *p; p=(int *)malloc(10*sizeof(int)); for(i=0;i10;i++) scanf(“%d”,p+i); 8.8 动态分配内存 需要时申请,不需要时释放。 目的:提高内存的利用率。 (2)calloc(10,2) //通常用来保存一个1维数组 int *p; p=(int*)calloc(10,2); for(i=0;i10;i++) scanf(“%d”,p+i); calloc通常用于动态数组的使用, 而malloc通常用于开辟链表或者树和图中的一个节点。 8.6 返回指针值的函数 8.7 指针数组和多重指针 8.8 动态分配内存和指向它的变量 8.5 指向函数的指针 通过指针引用二维数组 a[3][4] = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9,10, 11,12 } }; 由三个1维数组组成,分别是a[0] a[1] a[2] P246—图8.19,图8.20和表8.2 比较好的复习资料。 通过指针引用二维数组 1 65514 2 65516 3 65518 4 65520 5 65522 6 65524 7 65526 8 65528 a a+1 a+2 a[0] a[0]+1 a[0]+2 a[0]+3 a是行指针,a[0],a[1],a[2]是列指针 9 65530 10 65532 11 65534 12 65536 通过指针引用二维数组 1 65514 2 65516 3 65518 4 65520 5 65522 6 65524 7 65526 8 65528 a a+1 a+2 a[0] a[0]+1 a[0]+2 a[0]+3 a是行指针,a[0],a[1],a[2]是列指针 9 65530 10 65532 11 65534 12 65536 * 行指针 列指针 通过指针引用二维数组 1 65514 2 65516 3 65518 4 65520 5 65522 6 65524 7 65526 8 65528 a a+1 a+2 a[0] a[0]+1 a[0]+2 a[0]+3 a[1][2] 9 65530 10 65532 11 65534 12 65536 通过指针引用二维数组 1 65514 2 65516 3 65518 4 65520 5 65522 6 65524 7 65526 8 65528 a a+1 a+2 a[0] a[0]+1 a[0]+2 a[0]+3 a[1][2] a + 1 9 65530 10 65532 11 65534 12 65536 通过指针引用二维数组 5 65522 6 65524 7 65526 8 65528 a+1 a+2 a[1] a[1][2] a + 1 *(a+1) 9 65530 10 65532 11 65534 12 65536 通过指针引用二维数组 5 65522 6 65524 7 65526 8 65528 a+1 a+2 a[1]+2 a[1][2] a + 1 *(a+1) *(a+1)+2 9 65530 10 65532 11 65534 12 65536 通过指针引用二维数组 5 65522 6 65524 7 65526 8 65528 a+1 a+2 a[1]+2 a[1][2] a + 1 *(a+1) *(a+1)+2 *(*(a+1)+2) 9 65530 10 65532 11 65534 12 65536 通过指针引用二维数组 5 65522 6 65524 100 65526 8 65528 a+1 a+2 a[1]+2 a[1][2] a + 1 *(a+1) *(a+1)+2 *(*(a+1)+2)=100 9 65530 10 65532 11 65534 12 65536 例8.11 输出二维数组的有关数据 void main() { int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12}; printf(“%u ,%u\n”,a,*a); printf(“
显示全部