数组写法
#include <stdio.h>
int main()
{
int a[5];
int i;
for (i = 0; i < 5; i++)
{
scanf("%d", &a[i]);
}
for (i = 0; i < 5; i++)
{
printf("%d ", a[i]);
}
return 0;
}
指针写法 间接访问(效率更高)
#include <stdio.h>
int main()
{
int a[5];
int i;
for (i = 0; i < 5; i++)
{
scanf("%d", a + i);
}
for (i = 0; i < 5; i++)
{
printf("%d ", *(a + i));
}
return 0;
}
可以用以下代码验证
printf("%d\n", a); printf("%d\n", &a[0]); printf("%d\n", a + 1); printf("%d\n", &a[1]);
第二种写法
#include <stdio.h>
int main()
{
int a[5];
int i;
int *p;
p = a;
for (i = 0; i < 5; i++)
{
scanf("%d", p + i); //改变在这里
}
for (i = 0; i < 5; i++)
{
printf("%d ", *(p + i)); //改变在这里
}
return 0;
}
第三种写法
#include <stdio.h>
int main()
{
int a[5];
int i;
int *p;
p = a;
for (i = 0; i < 5; i++)
{
scanf("%d", p + i);
}
for (i = 0; i < 5; i++)
{
printf("%d ", p[i]); //改变在这里
}
return 0;
}
第一次改进
#include <stdio.h>
int main()
{
int a[5];
int i;
int *p;
p = a;
for (i = 0; i < 5; i++)
{
scanf("%d", p + i);
}
for (p = a; p < a + 5; p++)
{
printf("%d ", *p);
}
return 0;
}
简简单单给数组里的数求个和
#include <stdio.h>
int Sum(int *p, int n);
int main()
{
int a[5];
int i;
int *p;
p = a;
for (i = 0; i < 5; i++)
{
scanf("%d", p + i);
}
for (p = a; p < a + 5; p++)
{
printf("%d ", *p);
}
printf("\n%d", Sum(a, 5));
return 0;
}
int Sum(int *p, int n) //int Sum(int p[5], int n)
{
int i, s = 0;
for (i = 0; i < n; i++)
{
s += p[i];
}
return s;
}