2个回答
展开全部
scanf的用法是从缓冲区中读入数据,然后将数据赋给参数中的变量。
众所周知C语言的函数参数是值传递,也就是传递给函数形参的仅仅是形参的值,如果直接将a、b的值传递给scanf的形参,在函数内部修改这些形参的值是无法影响到外部的实参a和b的,也就无法起到给ab赋值的作用。所以,scanf不能这么设计,而是必须传递指向实参的指针作为参数,通过指针去引用和修改外部实参的值。&a、&b分别代表a和b的地址,它们就可以当做指向a和b的指针使用。
众所周知C语言的函数参数是值传递,也就是传递给函数形参的仅仅是形参的值,如果直接将a、b的值传递给scanf的形参,在函数内部修改这些形参的值是无法影响到外部的实参a和b的,也就无法起到给ab赋值的作用。所以,scanf不能这么设计,而是必须传递指向实参的指针作为参数,通过指针去引用和修改外部实参的值。&a、&b分别代表a和b的地址,它们就可以当做指向a和b的指针使用。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询