zoukankan      html  css  js  c++  java
  • 数组与指针

    一个变量有地址,一个数组包含若干个元素,每个数组元素都在内存中占用储存单元,它们都有相应的地址。

    指针变量既可以指向变量,也可以指向数组元素(把某一元素的地址放在一个指针变量中)。

    所谓数组元素的指针就是数组元素的地址。

    定义一个指向数组元素的指针变量的方法,与指向变量的指针变量相同。

    例:int a[10];

      int *p;

      p=&a[0];

    注:若数组为int型,则指针变量的基类型也为int型。

    引用一个数组元素,可以用:

    (1)下标法,如a[i]形式;

    (2)指针法,如*(a+i)或*(p+i)。

    基中的a是数组名,p是指向数组元素的指针变量,其初值p=a等价于p=&a[0]。

    注:数组名即编译为数组的第一个元素的地址。

    例:输出数组中的全部元素。

    假设一个a数组,整型,有10个元素,要输出个元素的值有三种方法。

    (1)下标法。

    (2)通过数组名计算数组元素地址,找出元素的值。

    (3)用指针变量指向数组元素。

    下标法:

    #include <stdafx.h>
    #include<stdio.h>
    
    void main()
    {
        int a[10],i;
        for(i=0;i<10;i++)
        {
            scanf("%d",&a[i]);
        }
        printf("
    ");
        for(i=0;i<10;i++)
        {
            printf("%d",a[i]);
        }
    }

    指针法:

    #include <stdafx.h>
    #include<stdio.h>
    
    void main()
    {
        int a[10],i;
        for(i=0;i<10;i++)
        {
            scanf("%d",&a[i]);
        }
        printf("
    ");
        for(i=0;i<10;i++)
        {
            printf("%d",*(a+i));
        }
    }

    指针变量法:

    #include <stdafx.h>
    #include<stdio.h>
    
    void main()
    {
        int a[10],i,*p;
        for(i=0;i<10;i++)
        {
            scanf("%d",&a[i]);
        }
        p=a;
        printf("
    ");
        for(i=0;i<10;i++)
        {
            printf("%d",*p);
            p++;
        }
    }

    思考:

    #include <stdafx.h>
    #include<stdio.h>
    
    void main()
    {
        int a[10],i,*p;
            p=a;
        for(i=0;i<10;i++)
        {
            scanf("%d",&p++);
        }
        printf("
    ");
        for(i=0;i<10;i++,p++)
        {
            printf("%d",*p);
        }
    }

    错误原因:&后必须接函数指示符

    纠正:第十行改为        scanf("%d",&p+i);

  • 相关阅读:
    小、快、简、易、强的“银弹”— fastm
    使用Creative suite 3和Flex Builder3实现Flex 3的换肤
    Apache HTTP Server 与 Tomcat 的三种连接方式介绍
    iframe自动适应付窗口的大小变换
    Flash网络游戏开发入门经验共享
    比较详细的 Linux Top 命令解析
    HttpContext是干什么的
    asp.net,cookie,写cookie,取cookie 的方法
    为什么我们不要 .NET 程序员
    在Ubuntu上安装使用深度影音&深度音乐(推荐)
  • 原文地址:https://www.cnblogs.com/lvfengkun/p/10354205.html
Copyright © 2011-2022 走看看