c语言的scanf("%d")有副作用吗?

int age = 0;
printf("请输入你的年龄");
scanf("%d", &age);
printf("你的年龄是%d岁。", age);

假如第三行时输入20,第四行也会显示 “你的年龄是20岁。”
请问这是因为scanf的副作用让之后的age都取20这个值吗?

按照cpp第六版的说法,函数返回值之外造成的其他影响都是其副作用
scanf在执行时通过非返回值的方式改变了传入变量的值,是属于scanf的副作用的
但是这里"副作用"是直译了side effect,个人认为这里的副作用应理解为"附属的"作用
有帮助望采纳

这里的输入是给age赋值吧。赋值后age就等于20了。
age是一个变量的概念,不应该理解成副作用吧