从零开始简单快乐学编程(14)--变量输入

时间:2015-09-05 21:49    点击:

知道了变量如何输出(打印),现在让我们看看变量如何输入
何为输入?也就是把从键盘中输入一个值给变量
那我们就要认识一下scanf()这个函数,这个函数是和printf()函数配对的,它们是一对夫妻
scanf()是 Scan(扫描的意思,可以看作是输入) Format的缩写,则按格式输入函数
那么它怎么从键盘里获取数据呢
就这样
int a;
scanf("%d",&a);
只要在键盘输入一个数,那么这个数会存入到变量a里
再看看printf();
printf("%d",a);
两个差不多把,只不过scanf()比printf()多了一个&,&是什么?&是取地址符

scanf("%d",&a); 意思就是你从键盘输入一个整型变量的值,它会自动存到变量a那个地址,也就是它会找到那么标记为a的盒子,然后把值放进里面
每个变量名都有对应的地址,变量名只是地址的别名,就好像外号一样


内存地址就好像更衣室的柜子,每一个柜子就是一个存储单元,你可以在里面放你的物品(相当于变量的值),每个柜子都有一个编号(相当于它的内存地址),而柜子上写着你的名字(相当于变量名)

内存地址可以用十进制(整数)来显示的,比如地址1234,1234就是一小块内存的地址,而变量名就是这块内存的别名,别名可以不止一个
变量就是计算机里的一小块内存,定义变量就是在计算机里开辟那一小块内存,而变量名只是为了方便人类而存在的,我要在那一块内存存入数据就不需要记住地址,一串数字根本记不住,但我只要给这个内存取一个别名就行了。我要在衣柜里放东西不用找编号,只要找到写有我名字的衣柜就行了

当定义一个变量
int a;
其实就已经在计算机内存开辟空间分配地址了
你可以打印它的地址是什么,&是取地址符,&a可以取变量a的地址

#include <stdio.h>
void main(){
int a;
printf("%d",&a);
}



可以看到地址是1244996,但这是我电脑上分配的空间地址,在大家的电脑可能会有所不同,而且关机或重启,下次分配的地址也会不同哦

还有要说一句,如果不给变量赋值而直接输出,计算机会给你对应变量类型的一个随机的值哦,而这个值并不在变量里,就像这样
#include <stdio.h>
void main(){
int a;
printf("%d",a);
}




好了,现在回到地址上
知道地址了,是不是就可以直接根据地址来赋值?
是可以的
代码
#include <stdio.h>
void main(){
int a;
printf("%d\n",&a);
*(int *)1244996=123;
printf("%d\n",a);
}


*(int *)1244996 这个关系到C语言的概念指针,以后接触的时候再讲吧,大家只要知道可以根据地址来赋值就行了
不过能用变量名赋值干嘛不用,本来就是方便我们的,又不是傻瓜



printf()是格式化输出函数
按格式输入引号里内容
比如 printf("a=%d,b=%d\n",a,b); ,引号的内容是给计算机看的,程序依次输出引号里的内容,当程序读取第一个%d,告诉计算机这里要输出一个整数,它就会自动取后面第一个变量的值,然后遇到第2个会自动取第2个变量的值

scanf()是格式化输入函数,那是按格式进行输入
比如scanf("%d,%d",&a,&b); ,引号的内容是给我们人类看的,碰到%d,我们得输入一个整数,然后碰到一个逗号,我们也得照常输入一个逗号,然后又碰到一个%d,那我们就继续输入个整数吧。然后怎么把我们输入的数字让计算机存储到对应的变量呢,这时候按回车,就是告诉计算机我们输入完毕了,然后计算机就知道你输入了几个整数,这时候它会把我们输入的内容根据后面的变量地址,把数字存放到那个地址的空间里。

其实这就是计算机的读取与写入,读取是输出,写入是输入,当写入一个数据到一个内存空间,它是不需要了解这个内存空间叫啥变量名的,只需要知道地址即可,然后根据地址来写入内存数据。就好比我们寄信,告诉邮局请寄一封信给某某,邮局知道在哪吗,我们只要说请寄一封信到某某地址,这样就ok啦

最后一段代码回顾上面
#include <stdio.h>
void main(){
int a,b;
printf("请输入两个数\n");
scanf("%d,%d",&a,&b);
printf("a=%d,b=%d\n",a,b);
}
运行出现黑框之后输入1,2 然后回车
程序很简单,不用多说啦,看图


好了,scanf() 函数就先简单说到这。它还有很多用法我们以后碰到再说吧。你也可以看看有关它的资料去学习哦


来源:幻想编程//所属分类:站长原创/更新时间:2015-09-05 21:49
顶一下
(22)
91.7%
踩一下
(2)
8.3%
上一篇:从零开始简单快乐学编程(13)--变量输出
下一篇:从零开始简单快乐学编程(15)--注释
相关内容