动态内存分配和释放
# include<stdio.h>
int main(void)
{
double *p;
double x = 66.6;
p = &x;//x占8个字节 1个字节是8位,1个字节为一个地址
//p里面只存放一个地址,这里为8个地址的首地址
double arr[3] = {1.1, 2.2, 3.3};
double *q;
q = &arr[0];
printf("%p\n", q);//%p实际就是以十六进制输出
q = &arr[1];
printf("%p\n", q);
return 0;
}
# include<stdio.h>
//void f(int * p);
int main(void)
{
int i = 10;
f(&i);
printf("i = %d\n", i);
return 0;
}
void f(int * p)
{
*p = 99;
}
# include <stdio.h>
int main(void)
{
int i = 9;
int * p = &i;//int *p; p = &i;
printf("%p", p);
f(&p);//重点:无论为什么变量要改写值只要放变量地址就可以,这里P为int *类型变量
printf("%p\n", p);
return 0;
}
void f(int ** q)//指针变量类型:int *,指针变量地址类型再加*:int **
{
*q = (int *)oxFFFFFFFF;
}