scanf地址符问题

img


两个问题
1.这种情况要不要加&,
2.什么时候要加,什么时候不要加
请各路神通帮忙解答,本人感激不尽!

  1. 需要加
  2. 当后面跟的是一个地址时不用加&

如果这里的scanf不是%c,而是%s,那可以不用循环,scanf("%s", str);就行了

用一个指针接收str,再用这个指针去接收scanf,就不需要加&。str代表这个数组的首地址,所以%s时可以不用&;但%c只是一个字符,要加&
scanf不是一个指针时,要修改变量的值,必须加&

你可以参考下这篇文章:scanf函数中参数是否需要&取地址符号