0%
前言
C语言之虚拟大厦不要以常规的思维来理解,类似于 钢铁侠
中的 Jarvis
,即:虚拟人工智能大厦,类似于科幻片。
正文
- 写C语言程序就像在虚拟世界中建造一座人工智能的大厦,但是由于大厦的智能水平有限,需要人为赋予它功能,因此,这个大厦只可以用来解决某一特定的功能,如:计算、预测等。
- 在这座大厦中肯定会有无数个房间,每个房间会有门牌号,如:
0101
等等。当然,既然是科幻的,每个房间的大小也可以随意设置规格呗,但是呢,由于规格的个数有限,所以每个房间的大小都需要在已有的规格之中。在这里的规格即为:数据类型
,所以这个规格是用来规定房间的大小的。 数据类型
包括:char, int, float, double
,而这些房间就是所谓的 变量
,即:变量就是内存空间也就类似于一个个的房间
。众所周知,房间可以用来放东西,可以放苹果、橘子、橙子等,但是需要保证可以放得进去,还得保证得是一个品种,总不能放苹果的房间放个橘子,这个就不合适了,毕竟每个房间有每个房间的作用,这样乱放容易打架啊,就像血液一样,A型的血不能给O型的,有人会说O型的血可以输给A型的啊(在这里先买个关子,预知后事如何请继续向下看);刚才说了放苹果的房间不能放橘子,然后还得有啥呢?假设有一个房间只能放一个普通苹果的大小,你给找来了一个变态大的苹果,肯定放不进去啊,你要硬放进去,肯定会弄下来一块肉,也就面目全非了啊,所以这个房间只能放在它能承受范围内的东西。所以,变量也是用来放东西的,但这个东西有一个殊荣,给了它一个名字叫: 值
,这些值可以是:字符、整数、小数
,看你需要啥了,你就想这个房间里天空飘着一堆数字或者字符。 对这些变量进行的操作,即对变量存放的值进行操作。比如:你说我想吃苹果,他就给你拿苹果给你,总不能把房间拿来给你吃啊,虽然里面有苹果,但是房间你也吃不了啊。
- 刚开始编写C语言就行建造了一个大厦,里面还没有任何装修,每定义一个变量,就相当于给这个大厦装修了一个房间,这个房间可大可小,已经突破了传统物理学(哈哈哈),但是已经装修了,就不能再变大变小了。而且:这个房间是人工智能自己装修的,不是你说在哪就在哪,你只能告诉他这个房间叫啥名,地方你不能选,其中:这个房间的名字叫做:
变量名
。
- 有一天,来了一个有钱人,带着他的七大姑八大姨来住房,他说了我要10个房间,还得是连着的,第一个房间住甲,第二个房间住乙,…,第十个房间住癸。这个连续的房间叫做:
数组
。 当然了,世界上也有钱办不到的事情啊,在这里他就不能指定这10个房间在哪,只能给这10个房间命名,这个名字就叫做:数组名
,而且你既然已经订了这10间房就这10间房,你可以空着,但是却不能说:我又来了一个二表姐,再添一个挨着的房间,明确的告诉你:不可能
。你和机器也发不了脾气,只能默默忍受,想要11个连着的房间只能重新订房,房钱可不会退的,你也就有了21间房即:数组不能销除
。你会说两人挤一间房不得了,不可以的呦,一个房间只能容纳一个人,第二个人可容不下了,毕竟无奸不商,要把所有的能用的地方用来赚钱,能省一点是一点。
- 客人肯定有很多的需求,有的要苹果汁,有的要西瓜汁,流程是一样的,为什么不另盖一座大厦专门用来完成这个需求呢,这个另一座大厦叫做:
函数
。你可以给这个大厦命名,这个名字叫做: 函数名
,但是你不能说这个大厦盖到哪里,他就算盖到北极你也管不了哦(因为这是任性的人工智能),反正给你你要的结果就可以了,毕竟可以瞬间传输。有人会问了,怎么知道是要西瓜汁还是苹果汁呢,这里就需要一个参数咯,这个参数叫做:形式参数(简称形参)
,这个形参是大厦盖好,就自动装修的房间,用来存储传来的信息的(即参数值)。当然了这个参数值和原来的肯定不一样咯,你想想你传来的值,就相当于把原来的值复制了,然后拷贝到形参房间里存储,这俩就没关系了,改变任意一个对另一个肯定没有任何影响啊,这个传递方式叫做:值传递
。
- 俗话说:林子大了什么鸟都有。有的人就比较任性他就吃夏威夷的苹果,他自己带来了,放到他买的房间了(这个房间不是那个人买的用来住的,是单独买的,用来放水果的),这可咋办呢,你想想你的身份证,是不是有具体的位置呢,这个肯定有啊,比如叫:
北极001号楼0101号房
,类似于 北极001号楼0101号房
这个叫做:地址
,这个0101号房可不是你取得名字,是人工智能用来区分给默认设置的。这时候你只需要把这个房间的地址,传递给那个加工果汁的大厦,他就可以对那个客户带的苹果进行加工了,这个传递叫做:地址传递
。当然了,这个地址传递也是值传递,只不过这个更高级了,可以跨楼处理了,而且这个地址传递用的多,因此才给他一个殊荣叫:地址传递
。这个大厦可以根据传来的地址,对其他的大厦的房间里面的东西进行操作,有人会问,为啥不能根据起的名字进行操作呢?首先,这个大厦只能操作这个大厦里面是这个名字的房间,否则不就逾矩了,管好自己的一亩三分地就可以了,比如:你想吃苹果,你不能拿别人家的一样啊。其次呢,你起名字叫 天字一号房
,别人也可以这么取名啊,人工智能虽然叫智能,实际上还是一个傻子,这么多的 天字一号房
,他也不知道具体是哪个啊,这样他就会犯迷糊了,一犯迷糊不就不干了。
- 比如这个函数里调用了另一个函数,这另一个函数又调用了另另一个函数,那么就多次传递呗,反正也没损失。