c语言中scanf("%d",a)和scanf(%d",&a)在printf("%d",a)中到底有什么区别

作者&投稿:郟柳 (若有异议请与网页底部的电邮联系)
c语言中scanf("%d",a)和scanf(%d",&a)在printf("%d",a)中到底有什么区别~

&是取地址的意思
&a
是取出变量a的地址
scanf(%d",&a)
就是读取1个数字
写入a的地址
scanf("%d",a)
是读取1个数字
写入地址a
这个a如果是100
就写到地址100
如果是200
就写到地址200
显然
这很危险
万一a的存储的值刚刚好是一些指令的地址什么的
会写到这个地址修改指令
就运行不下去了
出大错
printf("%d",a)
就没什么了
把变量a的存储的值输出
然后
&是取地址
所以你可以
printf("%d",&a)
这样是输出a的地址

scanf("%d",&a),是输入一个整形数值给变量a,
printf("%d",&a),是打印a的地址。
如果去掉&,变成printf("%d",a),就是打印整形变量a的值了。输出时一般是不加&的

二者的区别是一个是取变量的值,一个是取地址。scanf(%d",&a) 是读取整型变量a在内存中的地址,而scanf("%d",a)是读取整型变量a的值。

&是取地址的意思,&a是取出变量a的地址scanf(%d",&a) 就是读取1个数字,写入a的地址,scanf("%d",a),是读取1个数字,写入地址a,这个a如果是100,就写到地址100。如果是200,就写到地址200,显然,这很危险,万一a的存储的值刚刚好是一些指令的地址什么的,会写到这个地址修改指令,就运行不下去了,出大错。printf("%d",a) 就没什么了 把变量a的存储的值输出然后&是取地址。

拓展资料

1、在HTML或SGML文档中,用于指明有字符存在(特殊字符)的默认符号。

2、在电子制表程序中,用于在描述单元格相互关系的公式中插入文本的操作符。

3、英文中代表and,也可读and。

4、该字符读音“z'da”。

5、&还有“联合”的意思。比如“A&B”公司,就是“A”和“B”两间公司合并起来的。

6、在某些电脑语言,如java中,表示按位进行“与”运算。

7、英文拼写:ampersand。

8、高级语言中的取地址符,如:“int a=0;int *p;p=&a;”,意为取变量a的地址给指针p。

9、C语言中两个&&表示“与”运算。如:while(a==9&&b==5) 表示当a等于9且b等于5时,条件成立。

10、Matlab中,&表示“与”运算(对应地,|表示“或”运算),但Matlab较高版本(如:Matlab R2008b)中,也承认&&的写法。在以上的意义中,以第3和第5项的用法最为普遍。

11、在vfp 数据库中,&是一个宏代换函数,用内在变量的值来代替&及变量名。

12、在Pascal中,&是八进制整型常量的前缀,如&7表示7 , &17表示15 , &177表示127 。

13、&还被大量引入到艺术创作与设计中。

14、bat中的命令,&之后顺序执行多条命令,不管命令是否成功。

15、在Visual Basic中使用命令按钮时,(&字母)代表将该字母设为快捷键。如在命令按钮的Caption属性中输入“确定(&K)”则表示K为“确定”事件的快捷键。

16、起标识作用。C++中引用的声明方法:类型标识符 &引用名=目标变量名,&在此不是求地址运算,而是起标识作用。

资料来源:百度百科:&



scanf(%d",&a) 就是读取整型变量a在内存中的地址 。

scanf("%d",a)就是读取整型变量a的值。

printf("%d",a) 就是输出整型a的值。

在C语言中,&是取地址运算符,&a表示获取a在内存中的地址。%d 格式化输出整数。scanf() 函数用于从标准输入(键盘)读取并格式化, printf() 函数发送格式化输出到标准输出(屏幕)。

在C语言中,%f表示 格式化输出浮点型数据。

例如:

#include <stdio.h>

int main(){
   

float f;    

printf("Enter a number: ");    // %f 匹配浮点型数据
   scanf("%f",&f);    printf("Value = %f", f);

return 0;

}



&是取地址的意思 &a 是取出变量a的地址
scanf(%d",&a) 就是读取1个数字 写入a的地址

scanf("%d",a) 是读取1个数字 写入地址a 这个a如果是100 就写到地址100 如果是200 就写到地址200 显然 这很危险 万一a的存储的值刚刚好是一些指令的地址什么的 会写到这个地址修改指令 就运行不下去了 出大错

printf("%d",a) 就没什么了 把变量a的存储的值输出
然后 &是取地址 所以你可以
printf("%d",&a) 这样是输出a的地址

scanf是输入,要在变量前加上&。printf是输出,不用加&

那两个回答对scanf的解说也太迷了,scanf后半部分写的应该是一个指针(地址)
如果a是一个int变量,a = 1,存储在内存的1234 5678H处,scanf(%d",&a)是正确写法,表示将输入读到变量a所在的地址处,即内存的1234 5678H处
而在执行时scanf("%d",a)会发生错误,因为将输入读到了内存的0000 0001H处


scanf()是什么意思?
scanf是c语言中的标准库函数,主要作用是接收用户输入的数据。scanf是C语言中的输入函数,可以从键盘获得用户输入,和printf输出功能正好相反。scanf的输入格式是多种多样的,使用时需根据情况选择,最常用的是十进制整数型输入%d。scanf的使用和输入格式 scanf("%d", &c); \/\/输入一个整数并赋值给c。

c语言中scanf的用法
c语言中scanf的用法是怎样的?让我们一起了解一下吧!scanf 的功能用一句话来概括就是“通过键盘给程序中的变量赋值”,它通常有两种用法。1、 scanf(输入控制符, 输入参数);功能:将从键盘输入的字符转化为“输入控制符”所规定格式的数据,然后存入以输入参数的值为地址的变量中。2、scanf(输入控制...

c语言scanf()的格式是什么?
在c语言中,scanf("%d%*c", &n);中%d表示读整数,%*c表示忽略掉一个字符型的输入项,&n表示对象n在内存中的地址。scanf("%d%*c", &n);整体表示输入两个数,并且忽略掉第二个字符型的输入项,然后将输入的对象存入n。在C语言的scanf函数中,格式字符串的一般形式为:%[*][输入数据宽度]...

c语言中的scanf()是什么意思?
scanf()是C语言中的标准输入函数。int scanf(const char * restrict format,...);scanf函数返回成功读入的数据项数,读入数据时遇到了“文件结束”则返回EOF。

C语言中, scanf()是什么意思?
include"stdio.h"main(){ inta,b,c,t;printf("pleaseinputa,b,c:");scanf("%d,%d,%d",&a,&b,&c);t=a;a=b;b=c;c=t;printf("%d,%d,%d",a,b,c);getch();}

c语言中scanf语句的用法及规则
c语言中scanf语句的用法及规则 在C语言中,scanf()函数用于从标准输入(通常是键盘)读取数据,并将其存储到指定的变量中。scanf()函数通常与格式化字符串一起使用,格式化字符串指定了要读取的数据类型和格式。scanf()函数按照格式化字符串中指定的格式读取数据,并将其存储到指定的变量中。scanf()函数的...

c语言中的scanf是什么意思
scanf是C语言中常用的输入函数,用于从标准输入设备(通常是键盘)中获取输入值,并按格式化字符串中的要求进行解析和赋值。它的语法格式为scanf(“格式控制字符串”, &变量1, &变量2, ...,&变量n),其作用是将用户输入的值按照格式化字符串中定义的格式,依次赋值给后面的各个变量。例如,若要获取...

c语言中的scanf是什么意思
C语言中scanf的含义是标准输入函数。详细解释:1. 基本定义:scanf是C语言中的一个标准库函数,用于从标准输入设备读取数据,并根据指定的格式存储到程序中定义的变量中。这个函数非常重要,因为它允许程序员获取用户输入或者从文件中读取数据来执行各种计算或操作。2. 函数结构:scanf的使用形式为`scanf`。

C语言中的scanf是什么意思
C语言中,scanf是一个至关重要的输入函数,它在头文件中声明。这个函数允许用户按照特定格式从键盘接收数据,并将其存储到指定的变量中。与输出函数printf相似,虽然在某些实现中不强制要求#include <stdio.h>,但推荐使用它来确保函数的正确调用。基本原理是,scanf函数接收一个格式字符串作为参数,该字符...

C语言中scanf是什么意思?
C语言中scanf是标准库函数,主要用来接收用户输入的数据。scanf与printf函数一样,都被定义在头文件stdio.h里,因此在使用scanf函数时要加上#include <stdio.h>。它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。函数格式:int scanf(char *format, args, ...);功 能...

如皋市13495107459: C语言中的scanf是什么意思 -
满聂双黄: scanf表示从键盘输入指定格式的数据.如:scanf("%d",x);指从键盘给x输入一个int型(整型)数据;scanf("%f",x);指从键盘给x输入一个float型(实型)数据; 对应的输出为:printf 按照指定的格式输出数据;如printf("%d",x); 指按整型数据输出X中的值. 举例说明如下:scanf("%d%d", &a, &b); // 接收用户从键盘输入的2个整数,分别赋值给变量a,b

如皋市13495107459: C语言中scanf函数解释? -
满聂双黄: scanf函数是输入函数……例如:scanf(''%d'',&c),就是这样用的就是从终端输入一个变量例如3,那么c的值就是3,如果是int *p=&c;那么scanf(''%d'',p),就是这样的类型,%d是定义变量C的数据类型!

如皋市13495107459: C语言中~scanf表示什么 -
满聂双黄: C语言中scanf是标准库函数,主要用来接收用户输入的数据. 函数格式:int scanf(char *format, args, ...); 功 能:从标准输入设备按format指定格式输入数据给args所指向的内存单元返 回 值 :读入并赋给args的数据个数.遇文件结束返回EOF,出错返回0 举例如下: int a;scanf("%d", &a); // 按%d的格式(即整型的格式),将用户输入的数据赋值给&a指向的内存单元(即变量a所在的内存单元).// 简单理解就是将用户输入的数转换为int类型并赋值给变量a

如皋市13495107459: “scanf”在c语言中什么意思? -
满聂双黄: scanf 是C语言中的输入函数,被定义在头文件stdio.h里: 函数原型: int scanf(const char *format,...);函数 scanf() 是从标准输入流stdio (标准输入设备,一般是键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中.其调用形式为: scanf("<格式说明字符串>",<变量地址>);变量地址要求有效,并且与格式说明的次序一致.

如皋市13495107459: C语言scanf是什么意思 -
满聂双黄: scanf是一个函数,与printf函数一样,它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中,其关键字最末一个字母f即为“格式”(format)之意

如皋市13495107459: C语言的Scanf是什么功能? -
满聂双黄: 变量是计算机语言中能储存计算结果或能表示值抽象概念,说的简单点就是存储你要用的值的. scanf 在C里面是输入用的 %d 代表读入的是int 类型

如皋市13495107459: C语言 scanf中“%*c”什么意思????? -
满聂双黄: scanf是C语言中的一个输入函数,与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include .(在有一些实现中,printf函数与scanf函数在使用时可以不使用预编译命令#include .)它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中.scanf函数返回成功读入的数据项数,读入数据时遇到了“文件结束”则返回EOF.

如皋市13495107459: C语言 scanf
满聂双黄: int a,b; scanf("%d%d",&a,&b);和scanf("%d,%d",&a,&b);是不同的.前者要打逗号,后者不用打逗号.%d输入的是整型变量,如果你要输入字符变量的话用%c.空格键也是一个字符,也就是说空格键在内存中占一个字节.在%d中按空格键,就是换行.在%c中按空格键时,计算机按字符来算,也就是占一个字节.

如皋市13495107459: C语言的 scanf("%d",&x) 是什么意思? -
满聂双黄: 从标准输入设备中(一般只键盘)获得一个整数,并赋值给x scanf是从标准输入流stdio (标准输入设备,一般是键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中,被定义在头文件stdio.h里.其传递的一般为变量的地址. &即为取地址符号, &x表示取x变量的地址. 转换格式说明字符(就是%后跟的部分)说明如下: c 读单字符 d 读十进制整数 e 读浮点数 E 读浮点数 f 读浮点数 o 读八进制数 s 读字符串 x 读十六进制数 X 读十六进制数 p 读指针值 u 读无符号十进制整数 % 读 % 符号(百分号)

如皋市13495107459: c语言中scanf语句中.%3f%3f与%3f,%3f的区别 -
满聂双黄: 在scanf语句%3f%3f与%3f,%3f的区别主要是,输入的时候的区别: 例如,scanf("%3f%3f",&a,&b);那么正确的输入就是1.0回车2.0,1.02.0,1.0 2.0都正确但是1.0,2.0就要出错,他就会把','号也当成你的输入的一员 如果是,scanf("%3f,%3f",&a,&b);那么正确的输入就是1.0,2.0,其他的都会出问题,因为你的scanf里面有','号他就会要求跟scanf里面的格式一样,他会找','号的

你可能想看的相关专题

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网