scanf函数中什么时候用“&”

在学习C语言时,常常会发现有的scanf()里需要&,而有的不需要。主要有下面两种情况:
情形1:当scanf函数后面接收的是一个地址的时候,此时不需要加“&”。如:

int main()
{ 
    char a[20];            //定义的a数组
    scanf("%s",a);        
    //由于a本身就是地址,所以前面不需要加取地址符“&”
    printf("%s",a);
}

情形2:当sacnf函数后面接收的不是一个地址、而是实际变量的时候,此时需要加“&”。如:

int main()
{
  int a;
  scanf("%d",&a);      //此时a不表示地址,所以需要加取地址符“&”
  printf("%d",a);
}

更多推荐

C语言学习小问题:关于scanf函数中“&”的使用