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<stdio.h>
#include<stdlib.h>
void 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;
}
运行结果
代码简单分析: