C 何时使用&何时读取输入
我对scanf很困惑。 何时使用&何时从键盘读取数据。 据我所知,&总是在您希望程序读入某些内容时使用C 何时使用&何时读取输入,c,scanf,C,Scanf,我对scanf很困惑。 何时使用&何时从键盘读取数据。 据我所知,&总是在您希望程序读入某些内容时使用 Eg. scanf("%c",&varA) or scanf("%d",&varA) 我也明白,当您使用指针时,您不会使用&for scanf 如果我想把一些东西扫描到数组中呢?我是否使用&? 我知道数组的名称计算为数组的第一个元素的地址,这也类似于指针 如果我想把一些东西扫描到数组中呢 这取决于您感兴趣的阵列 如果是字符数组,则可以使用scanf%s,s;不带&运算符,s
Eg. scanf("%c",&varA) or scanf("%d",&varA)
我也明白,当您使用指针时,您不会使用&for scanf
如果我想把一些东西扫描到数组中呢?我是否使用&?
我知道数组的名称计算为数组的第一个元素的地址,这也类似于指针
如果我想把一些东西扫描到数组中呢
这取决于您感兴趣的阵列
如果是字符数组,则可以使用scanf%s,s;不带&运算符,s是字符数组。
如果是数值数组,则需要扫描%d,&a[i];对于单个数组元素,因此需要使用&运算符。
如果我想把一些东西扫描到数组中呢
这取决于您感兴趣的阵列
如果是字符数组,则可以使用scanf%s,s;不带&运算符,s是字符数组。
如果是数值数组,则需要扫描%d,&a[i];对于单个数组元素,因此需要使用&运算符。
在第一个参数之后传递给scanf的参数都是地址。您需要提供变量的地址来分配输入值
这就是为什么在读取变量值时,必须使用&运算符传递其地址
比如说,
int n;
scanf("%d", &n);
您还可以将变量的地址分配给指针,并使用该指针:
int n;
int *p = &n;
scanf("%d", p);
对于数组,数组的名称实际上是基址,即第一个元素的地址。您也可以在scanf中使用:
这种方法对于读取输入中没有空格的字符串非常有用:
char str[64];
scanf("%s", str);
在第一个参数之后传递给scanf的参数都是地址。您需要提供变量的地址来分配输入值
这就是为什么在读取变量值时,必须使用&运算符传递其地址
比如说,
int n;
scanf("%d", &n);
您还可以将变量的地址分配给指针,并使用该指针:
int n;
int *p = &n;
scanf("%d", p);
对于数组,数组的名称实际上是基址,即第一个元素的地址。您也可以在scanf中使用:
这种方法对于读取输入中没有空格的字符串非常有用:
char str[64];
scanf("%s", str);
scanf使用,因此要读取特定变量,需要查看哪个变量会给出该变量的地址
1对于正常变量int a,需要(&S),scanf%d,&a
2对于指针变量int*a,不需要&scanf%d,a
3对于数组int a[10]
仅使用名称时,不需要&scanf%s,a;
当用于元素时,&是必需的,scanf%d,&a[0];
scanf使用,因此要读取特定变量,需要查看哪个变量会给出该变量的地址
1对于正常变量int a,需要(&S),scanf%d,&a
2对于指针变量int*a,不需要&scanf%d,a
3对于数组int a[10]
仅使用名称时,不需要&scanf%s,a;
当用于元素时,&是必需的,scanf%d,&a[0];
您只需要提供一个指针作为存储结果的参数。如果使用非指针变量,则使用&获取其地址。另一方面,如果指针已经作为指针从其他地方传递到函数中,那么您可以直接使用它,而无需&。如果要存储到a[i],可以使用&a[i]或a+i来获得相同的结果。只需提供一个指针作为存储结果的参数。如果使用非指针变量,则使用&获取其地址。另一方面,如果指针已经作为指针从其他地方传递到函数中,那么您可以直接使用它,而无需&。如果要存储到a[i],可以使用&a[i]或a+i来获得相同的结果。