读前福利:几百本互联网技术书籍送给大家https://mp.weixin.qq.com/s/dFqVQ2qJxvQ0YrIlPISJuw

1 题目
函数:invert()
功能:用指针实现逆序存放数组元素的值
描述:使用指针将数组中的元素值逆序放置,并且将结果打印出来
2 思路
1. 程序变量中两个数字进行交换的三种方法
第一种:引入一个中间量
第二种:要注意的是a+b可能会超过int的范围,这个是该方法的缺点
第三种:这种方法效率最高,推荐使用
2. 指针的使用
使用指针对数组内容进行操作,数组 a, a 指向数组首位置,a+N-1 指向最后一位。从而利用循环对数组的首尾数字逐个替换
3 代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| #include <stdio.h> #include <stdlib.h> #define N 10
void invert(int *a) { int *begin, *end, mid; begin = a; end = a+N-1; mid = (N-1)/2; int temp; for (int i = 0; i <= mid; ++i){ *begin = *begin ^ *end; *end = *begin ^ *end; *begin = *begin ^ *end;
++begin; --end; } }
int main(int argc, char const *argv[]) { int a[N] = {1,2,3,4,5,6,7,8,9,10}; printf("当前数组中的值为:"); for (int i = 0; i < N; ++i) { printf("%d ", *(a+i)); } printf("\n"); invert(a); printf("使用指针逆序后数组中的值为:"); for (int i = 0; i < N; ++i) { printf("%d ", *(a+i)); } printf("\n"); }
|
示例结果:
1 2 3 4
| $ gcc ex018.c -o demo $ ./demo 当前数组中的值为:1 2 3 4 5 6 7 8 9 10 使用指针逆序后数组中的值为:10 9 8 7 6 5 4 3 2 1
|
最后
在这里给大家准备了几百本的互联网技术类书籍,需要的来下载吧!点击获取
有任何问题,欢迎随时交流!!!