#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);
}