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
。爲什麼是這樣?而在代碼運行時,因爲是我得到如下結果:通過取消引用指針獲取值
Value of variables through pointers:
age = 40
gpa = 0.000000
grade = A
fun = -2147483648
(lldb)
哦!我的解釋是,他們都被認爲是整數,因爲他們都指向一個內存地址? – 2014-09-26 19:13:50
指針的本質是指向一個內存地址,但該內存地址處的內容不需要是整數。 – Celada 2014-09-26 19:23:35