C语言中 * 的三种含义

1.相乘:符号两边都是两个变量。 例:x*y;

x=2;y=3;z=x*y=2*3=6;

2.指针类型:左边是类型。例:int*x;(定义了一个名字叫x的变量,能够存放int数据类型的地址)

int *x;(定义了指针变量 x ,x 是指向整数类型的指针)

3.解引用操作(间接访问操作):左边没啥,右边是一个指针类型变量。例如:y= *x; 如果x是一个已经定义好的指针变量,则(*x)表示以y的内容为地址的变量

y= *x;(指针x指向的值赋值给y(此处*为指向运算符,*x表示指针x所指向的变量的存储单元)

应用实例

交换两个整数

#include#includevoid Swap(int *x, int *y) {int tmp = *x;*x = *y;*y = tmp;}int main() {int num1 = 0;int num2 = 0;printf("请输入num1 num2的值:");scanf("%d %d", &num1, &num2);Swap(&num1, &num2);printf("num1=%d\nnum2=%d\n", num1, num2);system("pause");return 0;}

运行结果

代码简单分析: