Driving with and without clocking blocks

In reply to nipradee:

Your module declaration is implicitly the same as

module test_tb
(
input wire logic clk,rst,
input wire logic[3:0]  A,B,
output var logic[3:0] C
);

C is a variable, and clocking block output drives are considered procedural assignments.
You are allowed to have multiple procedural assignments to a variable.