设为首页收藏本站

SKY外语、计算机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5578|回复: 2
打印 上一主题 下一主题

[C] 详解c语言第三课之循环&数组

[复制链接]

6

主题

0

好友

272

积分

中级会员

Rank: 3Rank: 3

性别
保密

最佳新人 活跃会员 热心会员 灌水之王 论坛元老

跳转到指定楼层
楼主
发表于 2012-6-14 18:42:42 |只看该作者 |倒序浏览
本帖最后由 sky_yx 于 2015-12-30 14:18 编辑

是时候学习点高级的东西了,今天我们要讲讲循环,有了循环这东西,就可以极大的简化我们的工作,将一些重复性的代码交个循环去做,我们只要坐等结果就可以啦!
有人说,那循环这么强大的东西,学起来难不难,那我告诉你,这东西,so easy啦,比坐电梯还简单,来看看我们的循环是神马样子滴:
标记:
        语句;
        goto 标记;
程序在执行的时候,是这样子滴,在碰到标记:以后程序会在这里做个记号,然后继续执行下面的语句,执行到goto的时候,就去找做记号的地方,回到那里,将前面的工作再来一次!
还是拿例子说话,看看咱们最简单的使用循环的例子,做一个输出10个一的程序:
#include <stdio.h>
main()
{
        int i = 0;
mark:
        printf("1");
        i++;
        if(i < 10) goto mark;
}
这段代码那 借助了一个变量i,因为要实现循环10次,只好用一个变量来记录循环次数了,否则咱的程序就成老母猪了,因为i的值从0开始,当i = 9的时候正好是10次,所以这里是通过判断i的值是否小于10决定是否回去循环,当i = 10的时候,就不跳回去了,程序结束。这里要说一下的就是这个i++了,可能好多人不明白它的意思,但我说它的大名你指定熟悉,就是i = i + 1,之所以要写成i++只不过感觉这样比较帅而已!
那,看到这个程序,有没有想到经过小小的改变,它能变成一个更有意思的程序,如果只让它输出1那多无聊啊,经过小小的改变,他就可以变成输出连续的数哦,想到没有,对,就是这样子:
#include <stdio.h>
main()
{
        int i = 0;
mark:
        printf("%d", i);
        i++;
        if(i < 10) goto mark;
}
怎么样,循环狠好玩也狠有用吧,接下来,讲个更有意思的吧,叫数组,有没有想过,随着我们的代码量越来越大,需要声明的变量也越来越多,如果需要同一类型的变量,而且这些变量还是有关系的,而且还需要狠多个(1000+),那总不能一个一个的去声明吧,类死咯,而且循环也不能帮我们完成变量声明的工作,那该怎么办捏,用数组,就很容易了,数组数组,顾名思义,就是一组数咯,我们只需要给这组数起个名字(跟变量名一个意思),然后在这个名字后面加上个[],在[]里填上数组的个数就可以啦,当然还要加上数组的数据类型来声明它,比如:
        int a[1001];
就是声明了有1001个(是1000+没错吧)元素名字叫a的整数型数组,在用这里面的元素的时候呢,只要用数组名加[],在[]里填上需要用的数组的序号就可以了,要注意的就是在C语言中,数组元素是以0开始的,也就是a[0]是上面数组的第一个元素,最后一个元素也就是a[1000],虽然咱们声明的是a[1001],但其实是没有a[1001]这个元素的,这里要注意哦!
就像变量可以在声明时赋值一样,数组也可以在声明的时候给它赋初值,赋初值的时候,要把值放在{}里,比如:
        int a[1001] = {1, 3, 2, 4, 6, 3, 5, 8};
好吧,就写这么几个吧,如果写完了它,就要把我累死咯,那我们的数组有1001个元素,我们只给了8个初值,那可怎么办捏,其实C语言很聪明,它会把这8个值赋给前八个元素,那其他的元素没有得到初值,不好意思,你们只能是0了!
数组一般是要跟循环放到一起使用的,要不然这么多数用起来忒麻烦了,咱们做一个数组与循环一起使用的例子,就把上面的数组用循环将其所有的元素输出吧,其实就把上面的修改一下就可以了,很简单哦,你想到了吗:
#include <stdio.h>
main()
{
        int a[1001] = {1, 3, 2, 4, 6, 3, 5, 8};
        int i = 0;
mark:
        printf("%d", a);
        i++;
        if(i < 1001) goto mark;
}
今天的课到这里就算完了,最后再来一个小插曲,咱们前面提到了好多次字符、字符串的,但一直没有详细讲,其实字符串就是字符的数组哦,你想到了吗,咱们刚开始写的HelloWorld程序,里的"HelloWorld"就是一个字符串,也就是字符数组,它由'H'、'e'、'l'、'l'、'o'、'W'、'o'、'r'、'l'、'd'、'\0',这几个元素组成,如果你很认真的在看的话,你会发现,这个数组的后面多了'\0'这么个元素,如果你前面认真听讲了的话,在看到这个东西以后肯定会反应过来这是一个转义字符,如果把字符串也看成一个数据类型的话,它也很特殊(貌似咱们讲的数据类型除了int都很特殊……),因为它的大小不是固定的,为了标示它的长度,计算机规定在它后面加个'\0'表示这个字符串结束了,所以你会看到一个只有10个字符的字符串其实它是一个有11个元素的字符数组,如果你再往深里考虑一下的话,你就会发现C语言用''来表示字符、""来表示字符串是有多么的明智,无论何时,只要有""它的后面肯定有一个'\0',即使是一个没有任何东西的空字符串也要占一个字节的大小。

分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
分享淘帖0 收藏收藏0 评分评分

0

主题

0

好友

10

积分

新手上路

Rank: 1

性别
保密
沙发
发表于 2012-8-11 21:34:08 |只看该作者
本帖最后由 sky_yx 于 2015-12-30 14:18 编辑

main没有返回值!

回复

使用道具 评分 举报

6

主题

0

好友

272

积分

中级会员

Rank: 3Rank: 3

性别
保密

最佳新人 活跃会员 热心会员 灌水之王 论坛元老

板凳
发表于 2012-8-13 00:03:08 |只看该作者
本帖最后由 sky_yx 于 2015-12-30 14:18 编辑

main没有返回值![/quote]
可有可无,看你怎么写,如果不写的话默认应该是返回为int型,你可以用void main(),那就真没返回值了!

回复

使用道具 评分 举报

您需要登录后才可以回帖 登录 | 立即注册


手机版|SKY外语计算机学习 ( 粤ICP备12031577 )    

GMT+8, 2024-5-2 12:48 , Processed in 0.101682 second(s), 31 queries .

回顶部