问题描述
- scanf变量类型的问题
-
请问scanf("%s", s)不用&,但是scanf("%d", &n);就需要&,那么别的变量类型呢?
解决方案
因为字符数组已经是指针了,所以不需要取地址,如果是别的变量,都需要。如果这个类型本身是指针,就不需要
比如
int i;
int * p = &i;
scanf("%d", p);
解决方案二:
scanf(“格式控制字符串”, 地址表列);
地址列表的不同表示
解决方案三:
c语言规定数组名就是地址,所以如果s是数组名,或者是指针,那么
scanf("%s",s); 就可以了,s就是地址,不用在加&
解决方案四:
scanf函数的一般形式为:
scanf(“格式控制字符串”, 地址表列);
所以,它需要地址。对于变量,看它是否是地址?如果不是,则需要取地址符,如:&。
时间: 2024-10-25 06:53:58