Hi MJB,
Almost correct!
When the interrupt is triggered the CPU does not _go_ to the vector table it retrieves just the address of the ISR (interrupt service routine) and loads it into the PC (programme counter) then starts executing from there until it sees a RTI, then back to where it left from.
As to how it is done in C, you should tell us what compiler as it varies a lot between them.
BR Peg