标题: 请问这个函数是输出数组值吗?输出数组值的话,pa[i]前不用加*吗? [打印本页]

作者: lzuoxin    时间: 2025-5-28 10:59
标题: 请问这个函数是输出数组值吗?输出数组值的话,pa[i]前不用加*吗?
int i, *pa, a[] = {3,4,5,6,7,3,7,4,4,6};
pa = a;
for (i = 0; i <= 9; i++)
{
printf("%d\n", pa[i]);
}
作者: xianfajushi    时间: 2025-5-28 12:34
这样的代码不如直接使用数组,没发挥指针的优势。
作者: cyi8    时间: 2025-5-28 15:03
pa=a;即pa={3,4,5,6,7,3,7,4,4,6};
作者: xiaobendan001    时间: 2025-5-28 16:25
要么pa[i],要么*(pa+i)吧,具体要测试一下。
实际上直接用下标更方便。
作者: xiaobendan001    时间: 2025-5-28 17:06
cyi8 发表于 2025-5-28 15:03
pa=a;即pa={3,4,5,6,7,3,7,4,4,6};

可不能这样说
作者: Hephaestus    时间: 2025-6-2 23:25
我也觉得pa[i]应该写成*(pa+i);实测一下不就知道了吗?
作者: lzuoxin    时间: 2025-6-3 18:13
测试过了,可以正常输出
pa=a 即 pa[i]=a[i]

t1.png (101.13 KB, 下载次数: 0)

t1.png

作者: xiaobendan001    时间: 2025-6-3 19:39
lzuoxin 发表于 2025-6-3 18:13
测试过了,可以正常输出
pa=a 即 pa=a

比如*PA可以定义为CHAR呢?




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1