指针详解
指针 ,即地址,是一个数字,也可以申请一片内存空间将指针值存起来指针 可以定位到内存中不同的字节运算符 *:*p表示取地址p上存储的值,即间接访问**int ***:基类型为int的指针变量,基类型存在的原因在于,如果只知道地址不知道数据类型,那么就无法正确解读该地址的数据 值传递 :从main函数向自定义函数传参时,一般使用的是值传递,即复制一份数据传给自定义函数,即:
void swap ( int x, int y) { int temp = x; x= y; y= x;
}
int main ( ) { int x= 1 ; int y= 2 ; swap ( x, y) ;
}
void swap ( int * x, int * y) { int tmp = * x; * x = * y; * y = tmp;
}
int main ( ) { int m= 1 ; int n= 2 ; int * x= & m; int * y= & n; swap ( x, y) ;
}
引用传递 :将值传递改成引用传递,可以在调用函数中使用主调函数的数据内容:
void swap ( int & x, int & y) { int tmp = x; x = y; y = tmp;
}
int main ( ) { int m= 1 ; int n= 2 ; swap ( m, n) ;
}
自由存储空间(堆 ):在结束函数调用后仍然能够使用,但是需要在使用结束后及时回收(机试不管泄露)。
int * addNode ( int i) { int * newNode = new int ; * newNode = i; return newNode;
}
int main ( ) { int * arry[ 10 ] ; for ( int i= 0 ; i< 10 ; i++ ) { arry[ i] = addNode ( i) ; } for ( int i= 0 ; i< 10 ; i++ ) { delete arry[ i] ; }
}