零基础c语言入门txt,【图片】零基础C语言入门【c语言吧】_百度贴吧

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

零基础C语言入门008——变量的地址、scanf()格式化输入函数

变量的地址:

每个变量都对应一块内存空间,计算机每一个空间都有唯一的一个标志代表着,本质是一个数,从0开始到很大的一个数,32位程序是2ˆ32-1,64位程序是2ˆ64-1。这个数就是地址,就像我们家的地址一样。

103edbbe644d55238b36b83a08c486e0.png

#include

int main(void)

{

int a = 12;

printf("%p\n",&a);

system("pause");

return 0;

}

&表示取地址,%p表示打印16进制的地址

注意,这个地址值,不同的编译器结果都可能 不一样,同一台电脑同一个编译器,再次编译结果也可能 不一样,内存随机分配。

学会了打印(也就是输出),能在程序中打印变量的值了,但也只能打印我们事先在程序中写好的值。

能不能在程序过程中自己手动用键盘输入变量的值,再打印出来呢?

这时我们就要学习scanf()标准输入函数。格式如下:

scanf("%d",&a);

&是取址符。

scanf("%d",&a);的意思就是你从键盘输入一个整型变量的值,它会自动存放到变量a那个地址。也就是它会找到那个标记为a的盒子,然后把值放进去。

为什么printf()没&,因为它是直接输出,a变量的地址已经事先知道,而scanf() 我们输入数据都是直接输入到内存里的。变量a的值从外部获取,得先知道变量a的地址,知道地址你才好把值放进去。且标准输入函数的格式需要,后面要的是地址信息。

每个变量名都有对应的地址,变量名只是地址的别名,就好像外号一样,之所以用变量名而不用地址名,因为变量名比地址名好记,方便。而地址名是数字,你不可能知道地址的十六进制数字00x0是什么。

扯远了,内存地址在学指针的时候你就会知道,现在先别管这些,知道太细反而越弄越糊涂,你现在就只需要知道scanf()的格式scanf("%d",&a);和print()差不多,但是变量名前一定要加&,除了scanf("%s",a);字符串格式就不需要,这也跟指针有关系,现在先别管,你只要知道除了%S,其他类型的变量都要在前面加&, 引号里面注意不要加\n,没必要

printf()是格式化输出函数,我想这个你们应该很容易掌握

scanf()是格式化输入函数,顾名思义,就是你在输入时必须按照指定的格式输入才行

#include

int main(void)

{

int num=5;

printf(“前:%d\n”, num);

//前面加个输入提示

printf(“请输入一个整数:”);

scanf("%d", &num);

printf(“后:%d\n”,num);

system(“pause”);

return 0;

}

#include

main(void)

{

int a,b;

printf(“请输入两个数\n”);

scanf("%d%d",&a,&b);

printf(“a=%d,b=%d\n”,a,b);

system(“pause”);

return 0; }

这个是连续输入

输入1 回车 输入2 回车

或者

输入1 空格 输入2 回车

注意:最后的回车是必要的,意味着完成输入

现在再改变一下

把scanf("%d%d",&a,&b);改成scanf("%d,%d",&a,&b);中间加一个逗号

那么,再怎么输入?

注意:出现怎么打什么

先输入1,再输入,(逗号),再输入2 回车

就是这样:1,2 回车

结果也是a=1,b=2,如果输入1就回车,那么b的值就没办法获取,而是你想不到的结果(这个自己去运行)

无论出现什么你就照打什么

如scanf("%d;%d",&a,&b);你就打1分号2 回车

哪怕是一个字母一个符号

因为scanf跟printf不同,printf你双引号里面有什么,他都会打印在屏幕。效果直观,出现什么偏差可以对应着改双引号里面的内容。而scanf双引号里面出现的元素必须你手动输入,且一个不漏,一个不多,一一对应。否则就获取错误的值。经常性的错误有scanf("%d,%d,%d",a,b,c)三个%d用逗号或其他符号隔开,scanf(“a=%d,b=%d,c=%d”,a,b,c)。结尾或用\n。然后键盘输入的时候又没输入逗号。或者scanf("%d%d%d",a,b,c)输入的时候又加逗号隔开,这样b的值就是你输入的第二个逗号。且很难发现。

所以scanf里面除了%d%d%d什么符号都不要带。逗号和\n都不需要。输入的时候,输入一个就按一下回车表示完成一个,中间不要加任何符号。如果你非要手贱不加不舒服,那么输入的时候就必需对应的输入

scanf("%d%d",&a,&b);

printf("a=%d,b=%d\n",a,b);

#include

int main(void)

{

int a;

float b;

char c;

printf("请输入a的值:");

scanf("%d",&a);

printf("请输入b的值:");

scanf("%f",&b);

printf("请输入c的值:");

scanf("%c",&c);

printf("a的值为:%d,b的值为:%f,C的值为:%c\n",a,b,c);

system("pause");

return 0;

}

这个是正确的吗?你运行的时候你就会发现,变量c没办法输入了,程序直接结束

哪里有问题?

下面我们来分析

首先程序显示 请输入a的值:

我们输入1,在按回车键

又会显示 请输入b的值:

我们输入1.1 按回车

这时候程序就会显示

请输入c的值:a的值为:1,b的值为:1.100000,C的值为:

这是为什么?别忘了之前说过,空格和回车也是字符

开始输入了1到了变量a里,按回车,继续下一个输入

又输入了1.1到了变量b里

此时再按回车的话,就会被scanf接收了,因为变量c是字符格式,回车也是字符,自动存到变量c里

非字符变量,用scanf连续输入,按空格或回车会等待下一个输入

但是字符和字符串变量,scanf会直接接收空格和回车

怎么解决?在%c前面加一个空格,就是这样scanf(" %c",&c);

#include

int main(void)

{

int a;

float b;

char c;

printf("请输入a的值:");

scanf("%d",&a);

printf("请输入b的值:");

scanf("%f",&b);

printf("请输入c的值:");

scanf(" %c",&c);

printf("a的值为:%d,b的值为:%f,C的值为:%c\n",a,b,c);

system("pause");

return 0;

}

这样程序就能正常按我们意图运行。

c语言基础 、变量 (一)、变量类型和表示方法 1.什么是变量?一句话,变量是存储数据的值的空间。由于数值的类型有多种,有整数、小数(浮点数)、字符等等,那么对应的变量就有整型变量、浮点型变量、字符型变量。变量还有其他的具体分类。整型变量还可具体分为无符号型、长整型和短整型。浮点型也可分为单精度型、双精度型和长双精度型。此外还可以分为静态变量、外部变量、寄存器变量和自动存储变量。这些数据类型我们在本节和后面的章节中都会陆陆续续介绍。 那么变量我们总要给它取个名字吧,这个名字我们叫做标识符。 标识符的命名有一定的规则: (1).标识符只能由字母、数字和下划线三类字符组成 (2).第一个字符必须是字母(第一个字符也可以是下划线,但被视作系统自定义的标识符) (3).大写字母和小写字母被认为是两个不同的字符,如A和a是两个不同的标识符 (4).标识符可以任意长,但只有前32位有效。有些旧的C版本对外部标识符的限制为6位。这是由于链接程序的限制所总成的,而不是C语言本身的局限性 (5).标识符不能是C的关键字 2.从上面的规则中,有个关键字的概念。那么什么叫关键字呢? 从表面字意上也可以看出,关键字是C语言本身某些特性的一个表示,是唯一的代表某一个意思的。 下面列出ANSI标准定义的32个C语言的关键字,这些关键字在以后的学习中基本上都会用到,到时再说它们的各自用法。 auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while C语言还包括一些不能用做标识符的扩展关键字。 asm cdecl _cs _ds _es far huge interrupt near pascal _ss 所以在以后的学习中,在给变量命名时要避开这些关键字。 3. Turbo C2.0规定所有变量在使用前都必须加以说明。一条变量说明语句由数据类型和其后的一个或多个变量名组成。变量说明的形式如下: 类型 <变量表>; 这里类型是指Turbo C2.0的有效数据类型。变量表是一个或多个标识符名,每个标识符之间用,分隔。 (二)、整型变量 整型变量是用来存储整数的。 整型变量又可具体分为好几种,最基本的整型变量是用类型说明符int声明的符号整型,形式如下: int Counter; 这里int是类型说明符,Counter是变量的名字。 整型变量可以是有符号型、无符号型、长型、短型或象上面定义的普通符号整型。 整型是16位的,长整型是32位,短整型等价于整型。 以下是几种整型变量的声明示例: long int Amount; /*长整型*/ long Amount; /*长整型,等价于上面*/ signed int Total; /*有符号整型*/
一、C语言的产生与发展 C语言是1972年由美国的Dennis Ritchie设计发明的,并首次在UNIX操作系统的 DEC PDP-11 计算机上使用。它由早期的编程语言BCPL (Basic Combind Programming Language)发展演变而来。在1970年,AT&T贝尔实验室的Ken hompson根据BCPL语言设计出较先进的并取名为B的语言,最后导致了C语言的问世。 随着微型计算机的日益普及,出现了许多C语言版本。由于没有统一的标准, 使得这些C语言之间出现了一些不一致的地方。为了改变这种情况,美国国家标准研究所(ANSI)为C语言制定了一套ANSI标准,成为现行的C语言标准。 二、C语言的特点 C语言发展如此迅速, 而且成为最受欢迎的语言之一,主要因为它具有强大的功能。许多著名的系统软件, 如PC-DOS,DBASE Ⅳ都是由C语言编写的。用C语言加上一些汇编语言子程序, 就更能显示C语言的优势了。归纳起来C语言具有下列特点: 1. C是中级语言 它把高级语言的基本结构和语句与低级语言的实用性结合起来。C语言可以象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。 2. C是结构式语言 结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。 3. C语言功能齐全 C语言具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。另外C语言也具有强大的图形功能,支持多种显示器和驱动器。而且计算功能、逻辑判断功能也比较强大,可以实现决策目的。 4. C语言适用范围大 C语言还有一个突出的优点就是适合于多种操作系统,如DOS、UNIX,也适用于多种机型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值