以前经常刚开始写c的时候经常犯错,想想也很有意思,最近正好趁着这个时光做了一下总结。c中指针的使用时非常重要的,但是无论是什么语言,都要首先树立内存空间这一概念,这样的话会很容易找到不同语言之间的相似点。首先我们要明白,一个内存单元的地址就叫做指针。那什么是内存单元呢?一般来说我们把存储器中的一个字节成为一个内存单元,不同数据所占的内存单元数不等,比如说char占用一个内存单元。为了让计算机能够找到某个内存单元,必须为每个内存单元进行编号,这里的编号就是我们所说的地址,也就是c中提到的指针。现在我们明白,内存单元其实由内存单元地址和内存单元内容共同构成。举个例子来说明这种关系,一个房屋有自己的地址(比如说天使街111号)是指针,而房屋里人就相当于内存单元的内容。当我们寻找某个人时,我们先找到他的房子即可。在c语言中允许使用一个变量来存放指针,这种变量成为指针变量。要注意的是,一个指针是一个地址,是一个常量。而一个指针变量却可以被赋予不同的指针值,是变量。除此<之外不要忘记,指针实际上也是一个地址。在c中,我们可能遇到交换个数值得情况。这里也许会遇到一些问题。见代码:
void printScreen(int a, int b){
printf(" the a is %d\n", a);
printf(" the b is %d\n", b);
}
/*
通过修改指针中的值可以正确交换两个数
*/
void swap(int* p, int* s){
int temp = *p;
*p =*s;
*s = temp;
}
/*
通过交换两个地址不能正确交换两个数
*/
void swap1(int* a, int* b){
int* temp &