int main(int argc, const char * argv[])
{
int age = 40;
float gpa = 3.25f;
char grade ='A';
double fun = 2.000043f;
char companyName[20] = "O'Brien Enterprises";
int *pAge = &age;
int *pGpa = &gpa;
int *pGrade = &grade;
int *pFun = &fun;
int *pCompanyName = &companyName;
printf("Value of variables through pointers:\n");
printf("age = %i\n", *pAge);
printf("gpa = %f\n",*pGpa);
printf("grade = %c\n", *pGrade);
printf("fun = %d\n", *pFun);
printf("companyName = %s\n", *pCompanyName);
return 0;
}
이 코드를 실행할 때 Xcode는 많은 경고와 오류로 응답합니다. age
을 제외한 모든 변수에 대한 포인터를 선언하고 초기화 할 때 incompatible pointer types
이라고 표시됩니다. 인쇄를 시도 할 때 age
, format specifies a different type
을 제외하고는 모두 표시됩니다. 왜 이런거야? 그래서 그들은이 int
에 대한 포인터하는 float
하는 char
해야하는 반면 당신은 정수에 대한 포인터로 모두를 선언 한포인터를 참조 해제하여 얻는 값
Value of variables through pointers:
age = 40
gpa = 0.000000
grade = A
fun = -2147483648
(lldb)
오
등을 쓸 수 있습니다! 나는 그들이 모두 메모리 주소를 지적했기 때문에 모두 정수가되어야한다는 해석 아래에 있었습니까? –
포인터가 메모리 주소를 가리키는 것은 자연 스럽지만 그 메모리 주소에있는 것이 정수 일 필요는 없습니다. – Celada