29.指针数组和数组指针
2018-01-18 10:07
155 查看
指针数组
数组的每一个元素都是地址,sizeof(p) = 40;
数组指针
数组的每一个元素都是一个数组的首地址,sizeof(p2) = 4;
实现不改变原来的数组元素位置来实现冒泡排序,使用指针数组
数组指针存储一个二维数组
int *p1[10];
数组的每一个元素都是地址,sizeof(p) = 40;
数组指针
int(*p2)[10];
数组的每一个元素都是一个数组的首地址,sizeof(p2) = 4;
实现不改变原来的数组元素位置来实现冒泡排序,使用指针数组
1 #include <stdio.h> 2 #include <stdlib.h> 3 4 void main() 5 { 6 int a[10] = { 0, 9, 2, 8, 3, 7, 4, 6, 5, 10 }; 7 int *p[10];//指针数组 8 for (int i = 0; i < 10; i++) 9 { 10 p[i] = a + i; 11 } 12 13 //冒泡排序 14 for (int i = 0; i < 10 - 1; i++) 15 { 16 for (int j = 0; j < 10 - 1 - i; j++) 17 { 18 if (*p[j]>*p[j + 1]) 19 { 20 int *ptemp = p[j]; 21 p[j] = p[j + 1]; 22 p[j + 1] = ptemp; 23 } 24 } 25 } 26 27 //输出 28 for (int i = 0; i < 10; i++) 29 { 30 printf("\n%d %d", a[i], *p[i]); 31 } 32 33 system("pause"); 34 }
数组指针存储一个二维数组
int a[3][4] = { 0 }; for (int i = 0; i < 12; i++) { a[i / 4][i % 4] = i; } for (int *p = &a[0][0]; p < a + 3; p++) { printf("%d\n", *p); } int(*p)[4] = a;//指针数组 for (int i = 0; i < 3; i++) { for (int j = 0; j < 4; j++) { printf("%d ", p[i][j]); } printf("\n"); }
相关文章推荐
- 二维数组和指针 和指针数组,数组指针
- 解析 指针数组,数组指针,函数指针
- 彻底了解指针数组,数组指针,以及函数指针,以及堆中的分配规则
- 数组指针与指针数组的区别
- 指针函数、函数指针、指针数组、数组指针
- 数组指针和指针数组的区别
- 数组指针与指针数组的问题
- 28-29-指针和数组
- 常量指针、指针常量、指针函数、函数指针、指针数组、数组指针区别在哪里?
- 二维指针、指针数组、数组指针和sizeof的一些用法
- C++指针数组、数组指针、函数指针
- (指针常量,常量指针)-(函数指针,指针函数)-(指针数组,数组指针)
- 【转】指针,指针数组,数组指针,函数指针
- 【C++学习】指针数组,数组指针,以及函数指针,以及堆中的分配规则--有是一篇好文章,收到自己门下 慢慢学习
- 指针数组,数组指针,函数指针,函数指针数组,指向函数指针数组的指针
- 数组指针和指针数组的区别
- 数组指针及指针数组的区别
- 数组指针和指针数组的区别
- 指针数组和数组指针
- 对指针,数组,指针数组,数组指针的一些理解