Agrego algo.
Lo anterior tiene que ver con lo cronológico, la ejecución de C empieza después de la invocación de B.
Pero desde un punto de vista conceptual el tiempo de ejecución de C es parte de A:
El código
A () {
....
B (C())
...
}
sería equivalente a
A () {
...
x = C()
B(x)
...
}
Lo anterior tiene que ver con lo cronológico, la ejecución de C empieza después de la invocación de B.
Pero desde un punto de vista conceptual el tiempo de ejecución de C es parte de A:
El código
A () {
....
B (C())
...
}
sería equivalente a
A () {
...
x = C()
B(x)
...
}