从代码书写理解指针,很重要

#include <stdio.h>
//int* :整型指针类型  int* x: 整型指针类型的变量x int* y: 整型指针类型的变量y
//int* swap():函数返回值类型为整数指针类型
int* swap(int* x, int* y)//该行的*号皆表示为指针类型  注意书写方式 这样书写容易理解
{
 int temp;
 temp = *x;//函数体中出现的*号皆表示为指针间接访问符,单目运算符。*号后面紧跟指针变量,中间不允许有空格。
 *x = *y;
 *y = temp;
 return y;//此y就是个已付值的指针变量。
}

int main(int argc, char *argv[])
{
 int i = 10, j = 20;
 int* p = swap(&i, &j);
 printf("now i=%d j=%d *p=%d\n", i, j, *p);
    //printf("Hello C-Free!\n");
    return 0;
}

总之要把定义指针类型符号*和指针取值单目运算符号*区别开来,注意书写必能理解指针。

//反转链表

struct List
{
int data;
List* next;
};

List* ReverseList(List* oldList,List* newHead=NULL)
{
List* next=oldList->next;
oldList->next=newHead;
newHead=oldList;
return (next==NULL) ? newHead : ReverseList(next,newHead);
}

原文地址:https://www.cnblogs.com/fx2008/p/2160680.html