编写程序,通过指针访问变量并输出变量的值
- 问题:如何通过指针访问值?
把变量的地址赋值给指针,通过指针访问值
#include <stdio.h>
int main()
{
int x, y; //声明变量
int *p1 = NULL;//声明并初始化指针
int *p2 = NULL;
x = 20;//给变量赋值
y = 30;
p1 = &x;//把变量的地址赋值给指针,指针指向变量的值
p2 = &y;
printf("p1 = %d p2 =%d\n",p1,p2);//指针存储地址的,指针名代表地址
printf("p1 = %d p2 = %d\n",*p1,*p2);//指针指向的值
}
范例8.2
从键盘输入两个数x和y,将这两个数从小到大输出。
#include <stdio.h>
int main()
{
int x, y;
int *p1, *p2, *p3;
scanf("%d %d",&x,&y);
p1 = &x;
p2 = &y;
if (x > y)
{
p3 = p1;
p1 = p2;
p2 = p3;
}
printf("x=%d y=%d\n",x,y);
printf("*p1 = %d,*p2 =%d\n",*p1,*p2);
}
范例8.3
从键盘输入两个数,利用指针交换两个数后输出。
大佛i额快女
范例8.5
通过指针输出二维数组每个元素的值。
定义一个指针变量指向二维数组的首地址。
#include <stdio.h>
int main()
{
int x[2][4] = { 1,2,3,4,5,6,7,8 };
int *p = NULL;
for (p = x[0]; p < x[0] + 8; p++)
{
if ((p - x[0]) % 4 == 0)
printf("\n");
printf("%d",*p);
}
return 0;
}
- 如何计算二维数组的元素?
- p = x[0] 把一维数组的地址赋值给指针
- 声明一个二维数组,并对二维指针进行赋值
- 把二维数组看成一维数组的数组(二维数组有两个元素,每个元素又有4个元素)
- 给地址值加1表示访问下一个元素
- 声明一个指针
- 定义一个指针
- -
范例8.6
从键盘输入一个二维数组,利用指针输出该数组的任意一个元素。
定义一个指针变量指向二维数组的首地址