指针与数组的结合(用冒泡法对数组数据进行由大到小的顺序排序)
//用冒泡法对数组数据进行由大到小的顺序排序
int main()
{
int BS(int* p, int n);
int a[] = { 1,2,3,4,5,6,7,8,9 };
int n = sizeof(a) / sizeof(a[0]);
BS(a, n);
for (int m = 0; m < n; ++m)
printf("%d ", a[m]);
}
int BS(int *p, int n)
{
for (int i = 0; i < n - 1; ++i)
{
for (int j=0; j < n - 1 - i; ++j)
{
if (*(p + j + 1) > *(p + j))
{
int temp = *(p + j);
*(p + j) = *(p + j + 1);
*(p + j + 1) = temp;
}
}
}
}
指针与数组的结合(将数组中n个整数按相反的顺序存放)
代码(一)
//将数组中n个整数按相反的顺序存放 int main() { int inv(int* p, int n); int a[] = { 1,2,3,4,5,6,7,8,9 }; int n = sizeof(a) / sizeof(a[0]); inv(a, n); for (int m = 0; m < n ; ++m) printf("%d ", a[m]); } int inv(int* p, int n) { int* i = p; int* j = p + n - 1; while (i < j) { int temp = *i; *i = *j; *j = temp; i++; j--; } }代码(二)
int main() { int a[] = { 1,3,4,5,6,8,9 }; int n = sizeof(a) / sizeof(a[0]); int* i = a; int* j = a + n-1; while (i < j) { int temp = *i; *i = *j; *j = temp; i++; j--; } for (int m = 0; m < n; ++m) printf("%d ", a[m]); return 0; }代码(三)
int main() { int inv(int a[], int n); int a[]={1,2,3,4,5,6,7}; int n = sizeof(a) / sizeof(a[0]); inv( a, n); for (int i = 0; i < n; ++i) printf("%d ", a[i]); } int inv(int a[],int n) { int left = 0; int right = n - 1; while (left < right) { int temp = a[left]; a[left] = a[right]; a[right] = temp; left++; right--; } }
指针与数组的结合(将数组中n个整数按打印)
在这里我们要分清*p++、 *++p、++(*p)
*p++是先取*p的值,然后是p加一。
*++p是先给p加一,然后取*p的值。++(*p)是给p所指元素加一。
代码(一)
int main() { int arr[10] = { 1,2,3,4,5,6,7,8,9,0 }; int* p; p = &arr; int i = 0; for (i = 0; i < 10; ++i) printf("%d", *p++); }代码(二)
//用指针p指向数组元素,通过改变指针变量的值,使p先后指向a[0]~a[9]各元素 int main() { int arr[10] = { 1,2,3,4,5,6,7,8,9,0 }; int* p; p = &arr; int i = 0; for for(i=0;i<10;++i,++p) printf("%d", *p); }代码(三)
//用指针变量指向数组 int main() { int a[10]={1,2,3,4,6,7,8,9,0,1,2}; int* p; for (p = a; p < (a +10); ++p) { printf("%d", *p); } return 0; }代码(四)
//通过数组名计算数组元素地址,找出元素的值 int main() { int a[10]={1,2,3,4,5,6,7,8,9,0} for (int i = 0; i < 10; ++i) { printf("%d", *(a+i));//(a+i)是数组中序号为i的元素的地址,*(a+i)是该元素的值。 } printf("n"); }



