zoukankan      html  css  js  c++  java
  • 利用指针遍历数组

    用指针遍历一维数组

     1 #include<stdio.h>
    2 int main()
     3 {
     4     int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};//定义一个一维数组并初始化
     5     int i;//定义一个整型变量 
     6     int *pointer;//定义一个指针变量 
     7     pointer=a;//并且指针指向数组a 
     8     for(i=0;i<12;i++)//利用循环输出数组的各个元素 
     9     printf("a[%d]=%d
    ",i,*(pointer+i));//打印每个数组元素 
        return 0;
    10 }

    分析:

    1.

    #include<stdio.h>

    第一行是调用库函数,即stdio 就是指 “standard buffered input&output",标是函数中用到了printf这个函数!需要在主函数上进行声明。

    2.

    int main()

    第二行是定义一个int 型的主函数。一个C程序有且只有一个主函数!

    3.

     int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};

    定义一个一维数组(我的学号末尾是8)并直接进行初始化,也可以先定义后初始化,其中一维数组的长度可以不写。

    4.

     int *pointer;

    定义一个指针变量;之前我总是把指针变量和指针弄混,把书上的定义又看了一遍!指针是地址,而指针变量则是地址变量。

    例如:

    int i=2;

    int *p;  

    p=&i;

    在这三行代码里面,i是一个int型变量,p是一个int型的指针变量,p里面的值是指针!

    5.

    pointer=a;

    在写这一行代码时出现了一个问题,就是一开始我这样写pointer=&a,编译出现了错误!我想了半天也没想出来,通过老师的引导,明白了;首先数组名就是数组的首地址,即a=&a[0],但是两个含义不同,a是默认为数组首地址,但同时也是表示整个数组,所以pointer=&a是不对的!,他不知道该取数组中的哪一个元素的地址!

    错误原因:没能够理解定义,按照自己的想法去做!

    6.

    for(i=0;i<12;i++)

    这是一个for循环,可以让数组中每个元素一个个输出即数组遍历!这里要注意()中的语句要用;隔开!!!而且如果循环体中有多个语句时可以用{};其实用while循环也是可以的!不过没有for循环简练!

    7.

    printf("a[%d]=%d
    ",i,*(pointer+i));

    这是输出函数,把数组的每一个元素打印出来!这里要注意打印的数据类型,以及输出表列的表达式!

    总结:   

    (1)像在定义一个一维数组时可以不写数组的长度,但是二维数组就必须要写了!数组初始化时,注意数组元素是用{}并且有; 

    (2)多用注释会节约很多时间。

    (3)在学习过程中,要经常复习前面的知识点,不会的地方一定要多查资料和课本!可以巩固和提高自己的专业知识!

    (4)学习C语言要有一颗严谨的心,我就是那种容易大意的人,通过C语言的学习让我细心了许多!

    (5)实践是学习C语言的捷径!只有实践才会发现很多错误并提高!

  • 相关阅读:
    上古神器之Vim编辑器
    Git
    Git
    php之IP
    PHP常见错误汇总
    Redis教程(Windows)
    如何使用RSS
    (转)Spring Boot干货系列:(三)启动原理解析
    (转)Maven创建webapp项目无法修改web版本的问题
    (转)图文详解MyEclipse中新建Maven webapp项目的步骤
  • 原文地址:https://www.cnblogs.com/zhaoyulong/p/6535568.html
Copyright © 2011-2022 走看看