#include<stdio.h>
int main()
{ void input (int *);
int number[10];
int i;
input(number);
for(i=0;i<10;i++)
printf("%d",number[i]);
return 0;
}
void input(int * number)
{
int i;
printf("input 10 numbers:");
for(i=0;i<10;i++)//这两句不太明白
scanf("%d",&number[i]);//在这的number不应该是指针变量吗
}
intput()的最后两句不应该是for(i=0;i<10;i++,number++)
scanf("%d",*number);
å¨Cè¯è¨ï¼æ°ç»æ 论ä½ä¸ºåæ°è¿æ¯è¿åå¼ï¼é½æ¯ä»¥æéå½¢å¼è¿åæè ä¼ éçãå¨æ°ç»ä¸ï¼æ°ç»åå代表çæ¯æ°ç»ç¬¬1个å ç´ çå°åãæ¯å¦å¦ä¸æ°ç»ã
int a[10] = {1,2,3,4,5,6};
æ°ç»åaï¼å®é ä¸ç¸å½äº&a[0]ãæ以ï¼å½å®åæ¯æ°ç»åï¼å½¢åæ¯æéåéæ¶ï¼åªè¦ä¿è¯æ°æ®ç±»åä¸è´å³å¯ä¼ éãå¦ä¸é¢ç示ä¾ä»£ç ï¼
#include <stdio.h>void f(int *p, int size) {
for (int inx=0; inx!=size; ++inx) printf("%d\t",p[inx]);
printf("\n");
}
int main()
{
int a[4] = {1,2,3,4};
f(a,4);
return 0;
}
另外:
for(i=0;i<10;i++,number++)
scanf("%d",*number);是错的,不应该有*
for(i=0;i<10;i++,number++)
scanf("%d",number);是对的
这里的number是地址
也就是说你只要明确scanf接收地址而不是实体就可以了,不管用什么方法,只要把地址传过去就对了追问
那在 input中 number是指针变量 还是指针常量
追答变量
追问我看了一遍 说number是指针变量 但是在input中number[i]表示的是number的的I个元素 请问是这个关系吗?
追答对,对于一个指针,后面加上[]就表示实体
*(number+i)和number[i]等价
你后边写的应是scanf("%d",number);