6_所有的指针变量只占4个子节 用第一个字节的地址表示整个变量的地址
CASE 1
double *p;
double x=66.6; //一个double占8个字节
p=&x;//x占8个字节,1个字节是8位,1个字节一个地址,p内只存放了一个地址,通常是字节的首地址
double arr[3]={1.1,2.2,3.3};
double *q;
q=&arr[0];
printf(“%p\n”,q); //%p实际就是以十六进制输出
q=&arr[1];
q=printf(“%p\n”,q); //p,q相差8
无论指针指向的变量占多少个字节,指针变量统一都只占4个字节
7_如何通过函数修改实参的值
发送地址
CASE 1 修改指针变量的值,只能修改地址
void f(int **);
int main(void)
{
inti=9;
int*p=&i;// *p;p=&i;
printf(“%p\n”,p);
f(&p);
printf(“%p\n”,p);
return0;
}
//void f(int *q)
//{
// q=(int*)0xffffffff; //错误,不会改变p的值
//}
void f(int ** q)
{
*q=(int*)0xffffffff;
}