指針的調(diào)用
#include <stdio.h>
void cs(int *a);
int main()
{
?int a[4], b, *c;
?c = a;
?printf("請輸入這10個數(shù)\n");
?for (b = 0; b<4; b++)
??scanf("%d", &a[b]);
?cs(c);
?for (b = 0; b<4; b++)
??printf("%d ", a[b]);
}
void cs(int *a)
{
?int b, c, d, e[4];
?for (b = 0; b<4; b++)
?{
??for (a = e; a<e + 4; a++)
??{
???if (*a<*(++a))
???{
????d = *a;
????*a = *(++a);
????*(++a) = d;
???}
??}
?}
}
為什么數(shù)沒有改變
2017-03-18
內(nèi)層循環(huán)初始 a = e,a已經(jīng)不再指向傳入時的位置,自然不會對原數(shù)組起到修改的作用。此外你在循環(huán)里額外使用了三次自增操作,應(yīng)該會導(dǎo)致數(shù)組越界。