int a =0;
int *p;
p=&a;
printf("%d\n",*p) //打印0
char b=100;
char *p1=&b;
printf("%d\n",*p) //打印100 *操作符操作的是指针变量指向的内存空间
//通过指针修改变量值
*p=100;//a 为100
//指针与数组
int a[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int i = 0;
int n = sizeof(a) / sizeof(a[0]);
for (i = 0; i < n; i++)
{
//printf("%d, ", a[i]);
printf("%d, ", *(a+i));
}
int *p = a; //定义一个指针变量保存a的地址
for (i = 0; i < n; i++)
{
p[i] = 2 * i;
}
for (i = 0; i < n; i++)
{
printf("%d, ", *(p + i));
}
//如果是一个int *,+1的结果是增加一个int的大小
//如果是一个char *,+1的结果是增加一个char大小
//指针与函数
#include <stdio.h>
void swap1(int x, int y)
{
int tmp;
tmp = x;
x = y;
y = tmp;
printf("x = %d, y = %d\n", x, y);
}
void swap2(int *x, int *y)
{
int tmp;
tmp = *x;
*x = *y;
*y = tmp;
}
int main()
{
int a = 3;
int b = 5;
swap1(a, b); //值传递
printf("a = %d, b = %d\n", a, b);
a = 3;
b = 5;
swap2(&a, &b); //地址传递
printf("a2 = %d, b2 = %d\n", a, b);
return 0;
}
指针
最新推荐文章于 2024-03-10 20:49:53 发布