을 예상 사용 포인터 값이 숙제가 아니라 내 마지막 임무는 C.오류 : 부동 소수점 값이
따라서을 코딩 할 때 내가 분명히 포인터를 이해하지 못했다 분명히 있다고했다, 나는를 입력 시도 함수에서 정수를 반전시키기위한 포인터를 사용하는 간단한 프로그램입니다. 그래서 이해의 차이가 어디에 있는지 알 수있었습니다.
명백하게 나는 그것에 도착했다. 그러나 나는 아직도 내가 잘못하고있는 것을 알아낼 수 없다.
내 소스 코드는 다음과 같습니다.
#include <stdio.h>
float invert(int *num);
void main (void)
{
int num;
float a;
printf("enter an integer \n");
scanf("%i", &num);
printf("Number entered %i \n", num);
a=invert(&num);
printf("This is the invse from main %f \n", a);
}
float invert(int *num) /* function inverts integer */
{
float invse;
printf("num is %i \n\n", *num);
invse = 1/(float)num;
printf("invse is %f \n\n", invse);
return(invse);
}
나의 생각은 내가 함수 반전에 납입의 주소에 저장된 값()를 사용하는 컴퓨터를 지시하는 포인터를 사용하는 것이 었습니다. 포인터가 변수 선언에 나타납니다. 그 포인터에 저장된 값을 float으로 캐스팅 했으므로 이것을 반전하고 로컬 변수에 저장합니다.
문제는 로컬 변수 할당에있는 것 같습니다. 제 컴파일러 반환 "invert.c : 29 : 2 : 오류 : 부동 소수점 값이 invse = 1/(플로트) NUM 예상 사용 포인터 값, 분명히 내 코드 역에 대한 포인터 값을 나타냅니다 ^
, 하지만 난 혼란 찾을 부동,로 선언했다. 어떤 도움에 감사드립니다
합니다. 이것은 내가 여기에 게시되지 않은 내 할당에 대한 코드의 내 큰 세트를 완료 한 날을 절약 할 수 있습니다.
감사합니다.
'num'은 포인터입니다. '* num'은 int입니다.보십시오'invse = 1/(float) * num' –
좀더 명확하게 말하면 :'int v = * num; invse = 1/(float) v;' –