利用指针遍历数组

用指针遍历一维数组数组

 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\n",i,*(pointer+i));//打印每一个数组元素 
    return 0;
10 }

分析:函数

1.学习

#include<stdio.h>

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

2.指针

int main()

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

3.blog

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

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

 

4.io

 int *pointer;

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

例如:

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\n",i,*(pointer+i));

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

总结:   

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

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

(3)在学习过程当中,要常常复习前面的知识点,不会的地方必定要多查资料和课本!能够巩固和提升本身的专业知识!

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

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

相关文章
相关标签/搜索