请问一下这个为什么好像传不进数组,大小也不对?
#include<stdio.h>
int main()
{
int num=0;
int i=0;
int arr[]={0};
scanf("%d",&num);
while(num)
{
printf("%d ",(num%10));
arr[i]=num%10;
i++;
num=num/10;
}
printf("%d ",sizeof(arr));
int right=sizeof(arr)/sizeof(arr[0])-1;
while(right>=0)
{
printf("%d ",arr[right]);
right--;
}
return 0;
}
修改如下:
#include<stdio.h>
int main()
{
int num=0;
int i=0;
int arr[10]={0};
scanf("%d",&num);
while(num)
{
arr[i]=num%10;
i++;
num=num/10;
}
int right=i-1;
while(right>=0)
{
printf("%d ",arr[right]);
right--;
}
return 0;
}
void f (int * p)//这里上面说过了,变量名是i,但是类型是int *,可以保存其他变量的地址。
{
*p=100;//上面也说过,*p就是i,i就是*p
}
int main()
{
int i=9;//这是一个普通的定义和赋值
f(&i);//这里要是调用函数,用&i,把i的地址传递给函数的参数p
cout<<"i"<<i;//结果应该是100
return 0;
}