Jus*_*ien -1 c pointers dereference
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;
}
Run Code Online (Sandbox Code Playgroud)
当我运行此代码时,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)
Run Code Online (Sandbox Code Playgroud)
你已经将它们全部声明为整数的指针,而它们应该是指向inta float,a char,a等的指针!
int *pAge = &age;
float *pGpa = &gpa;
char *pGrade = &grade;
double *pFun = &fun;
char **pCompanyName = &companyName;
Run Code Online (Sandbox Code Playgroud)