c语言中的scanf("%s",&a)的”“是什么意思?

如题所述

 &是取地址,scanf读取变量的时候,参数需要的是变量的实际内存地址。

与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include <stdio.h>。

在有一些实现中,printf函数与scanf函数在使用时可以不使用预编译命令#include <stdio.h>。是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。



扩展资料:

对于字符串数组或字符串指针变量,由于数组名可以转换为数组和指针变量名本身就是地址,因此使用scanf()函数时,不需要在它们前面加上"&"操作符。

可以在格式化字符串中的"%"各格式化规定符之间加入一个整数,表示任何读操作中的最大位数。scanf函数中没有类似printf的精度控制。如: scanf("%5.2f",&a); 是非法的。不能企图用此语句输入小数为2位的实数。

scanf中要求给出变量地址,如给出变量名则会出错,如 scanf("%d",a);是非法的,应改为scanf("%d",&a);才是合法的。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-10-17

&是取地址,scanf读取变量的时候,参数需要的是变量的实际内存地址,了解C语言指针的概念后就会明白,地址就是指针,指向变量的数据内容。不过一般%s是不会用&取地址的,因为字符串类型本身就是指针,不需要再进一步取地址。

扩展资料:

c语言基础知识:

1、任何一个c语言程序都必须包括以下格式:

main() { }

这是c语言的基本结构,任何一个程序都必须包含这个结构。括号内可以不写任何内容,那么该程序将不执行任何结果。

2、main()----在c语言中称之为“主函数”,一个c程序有且仅有一个main函数,任何一个c程序总是从main函数开始执行,main函数后面的一对圆括号不能省略。

3、被大括号{ }括起来的内容称为main函数的函数体,这部分内容就是计算机要执行的内容。

4、在{ }里面每一句话后面都有一个分号(;),在c语言中,我们把以一个分号结尾的一句话叫做一个c语言的语句,分号是语句结束的标志。

本回答被网友采纳
第2个回答  2020-10-17

scanf是C语言中的标准输入函数。

函数原型:int scanf( const char *format, ... );其调用格式为: scanf("<格式化字符串>",<地址表>);

&是取地址scanf读取变量的时候,参数需要的是变量的实际内存地址,了解C语言指针的概念后就4102会明白地址就是指针,指向变量的数据内容。

扩展资料:

函数 scanf() 是从标准输入流stdin(标准输入设备,一般指向键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。

函数的第一个参数是格式字符串,它指定了输入的格式,并按照格式说明符解析输入对应位置的信息并存储于可变参数列表中对应的指针所指位置。每一个指针要求非空,并且与字符串中的格式符一一顺次对应。

参考资料来源:百度百科-scanf

本回答被网友采纳
第3个回答  2020-10-17

&是取地址,scanf读取变量的时候。

scanf()函数简单说就是通过键盘输入给声明好的变量赋值。

如何使用注意以下几点。

1、单个变量

如:

int i;

scanf("%d",&i);

printf("i=%d.\n",i);


整数输入100,回车结束,系统默认以字符的形式读取‘1’、‘0’、‘0’,然后通过格式转化符%d,转化成整数100,最后通过取地址符&,存放到变量i的地址中。

扩展资料

输入多个不同类型数据同样以空格隔开,输入完最后以回车结束。声明变量的类型和输入转化格式符类型必须保持数据和类型完全一致。(输入小数后面不要加空格,防止系统把空格认为是我们想要输入的字符,解决办法是直接在浮点数后输入字符,单个字符和后面的字符串字符数组不需要取地址符“&”。

1)字符串的 strlen() 和 strcat() 和strcmp() 和strcpy()的使用方法一定要记住。他们的参数都是地址。其中strcat()和strcmp()有两个参数。

2)strlen 和 sizeof的区别也是考试的重点;

本回答被网友采纳
第4个回答  2019-06-24
&是取地址
scanf读取变量的时候
参数需要的是变量的实际内存地址
了解c语言指针的概念后就会明白
地址就是指针
指向变量的数据内容
不过一般%s是不会用&取地址的
因为字符串类型本身就是指针
不需要再进一步取地址
相似回答