I found the solution to get the double values. The key point is I have to use the function mxGetPr() to get the pointer of a mxArray. For example, to get the phone number "3386":
mxArray *phoneNum;
phoneNum = mxGetField(prhs[0], 0, "phone"); // 3386
double *number;
number = mxGetPr(phoneNum);
mexPrintf("...%f = ", *number);
BUT there is still a problem, the return value of the mxGetPr() is double, I don't konw how to get the names (string) of the 1. field? Can anyone help?
Thanks