函数相同,但不能显示非格式字符串,也就是
不能显示提示字符串。地址表列中给出各变量的地址。地址是由地址运算符“&”后跟变量名
组成的。
例如:
&a, &b
分别表示变量 a 和变量 b 的地址。
这个地址就是编译系统在内存中给 a,b 变量分配的地址。在C语言中,使用了地址这个
概念,这是与其它语言不同的。 应该把变量的值和变量的地址这两个不同的概念区别开来。
变量的地址是 C 编译系统分配的,用户不必关心具体的地址是多少。
变量的地址和变量值的关系如下:
在赋值表达式中给变量赋值,如:
a=567
则,a 为变量名,567 是变量的值,&a 是变量 a 的地址。
但在赋值号左边是变量名,不能写地址,而 scanf 函数在本质上也是给变量赋值,但要
求写变量的地址,如&a。 这两者在形式上是不同的。&是一个取地址运算符,&a 是一个表
达式,其功能是求变量的地址。
【例 4.7】
main(){
int a,b,c;
printf("input a,b,c\n");
scanf("%d%d%d",&a,&b,&c);
printf("a=%d,b=%d,c=%d",a,b,c);
}
在本例中,由于 scanf 函数本身不能显示提示串,故先用 printf 语句在屏幕上输出提
示,请用户输入 a、b、c 的值。执行 scanf 语句,则退出 TC 屏幕进入用户屏幕等待用户输
入。用户输入 7 8 9 后按下回车键,此时,系统又将返回 TC 屏幕。在 scanf 语句的格式
串中由于没有非格式字符在“%d%d%d”之间作输入时的间隔,因此在输入时要用一个以上的
谭浩强 C 语言程序设计 2001 年 5 月 1 日
空格或回车键作为每两个输入数之间的间隔。如:
7 8 9
或
7
8
9
2. 格式字符串
格式字符串的一般形式为:
%[*][输入数据宽度][长度]类型
其中有方括号[]的项为任选项。各项的意义如下:
1) 类型:表示输入数据的类型,其格式符和意义如下表所示。
格式
d
o
x
u
f 或 e
c
s
字符意义
输入十进制整数
输入八进制整数
输入十六进制整数
输入无符号十进制整数
输入实型数(用小数形式或指数形式)
输入单个字符
输入字符串
2) “*”符:用以表示该输入项,读入后不赋予相应的变量,即跳过该输入值。
如:
scanf("%d %*d %d",&a,&b);
当输入为:1 2 3 时,把 1 赋予 a,2 被跳过,3 赋予 b。
3) 宽度:用十进制整数指定