指针的范例

编写程序,通过指针访问变量并输出变量的值

  • 问题:如何通过指针访问值?

把变量的地址赋值给指针,通过指针访问值

#include 

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 

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 

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
从键盘输入一个二维数组,利用指针输出该数组的任意一个元素。
定义一个指针变量指向二维数组的首地址

你可能感兴趣的:(由深入浅)