常常会碰见指针最为函数参数传递的问题void exchange(int x, int y)函数
{ int p=x; x = y; y = p; } //应该是下面这样 调用函数 是值拷贝的 因此原来元素地址对应的值不会改变 上面的代码彻底是无效的 void exchange(int *x, int *y) { int *p=x; *x = *y; *y = *p; }
//若是传递的是指针 就是直接在存放内容的地址中 对元素进行交换
写一个给某个指针分配内存的函数:spa
void my_malloc(void* p, int size) { p = malloc(sizeof(int)*size); } //应该这么写: void my_malloc(void** p, int size) { *p = malloc(sizeof(int)*size); }
指针和变量同样,也是有地址的,变量的值真是一个值 ,指针的值被解释位一个地址。那指针存到哪里了呢 。。。。指针
指针也是一个变量,和普通的变量同样,都存在内存中。code
指针也是有地址的。blog
当给一个函数的参数传递一个变量是,这个变量是复制过去的。内存