c - 以相反的顺序打印数组指针值
问题描述
我想反向打印指针数组值
#include <stdio.h>
#define size 5
int main()
{
int a[size] = {1,2,3,4,5};
int i;
int *pa = a;
for(i = size; i >0; i--)
{
printf("a[%d] = %d\n",i,*pa);
pa++;
}
return 0;
}
输出:
a[5] = 1
a[4] = 2
a[3] = 3
a[2] = 4
a[1] = 5
我想要的输出是:
a[5] = 5
a[4] = 4
a[3] = 3
a[2] = 2
a[1] = 1
解决方案
用这个代替
#include <stdio.h>
#define size 5
int main()
{
int a[size] = {1,2,3,4,5};
int i;
int *pa = (a+size-1);
for(i = size; i >0; i--)
{
printf("a[%d] = %d\n",i,*pa);
pa--;
}
return 0;
}
推荐阅读
- c++ - 如何定义依赖于参数包转换的函数的返回类型?
- spring - @Autowired 在 springboot 应用程序中不起作用
- postgresql - 如何小写postgresql数组?
- c# - ASP .NET CORE 2.0 - 无法在 Debian 上启动服务
- android - 远程获取领域数据库 Android
- gcloud - 谷歌云ml语音-异步操作丢失id
- c# - 搜索和替换文本,如记事本
- python - 没有访问权限/尝试过“chmod u+x”/.command/ 文件有点打开,但没有集会/Hairline 将不胜感激
- python-3.x - LZ4使用python解压
- python - pygame - 重新进入游戏窗口时全屏游戏图形移动