When sending out packet from A to B, does the router send the packet using NAT(Network Address Translation)?
Usually no. It technically could, but it doesn't have to – there is no need for NAT in this situation.
(I'm assuming that C is acting as both A's and B's "default gateway".)
If not, how could A and B communicate to each other?
Try the opposite question: why is NAT necessary for some kinds of communication?
NAT becomes necessary because the Internet doesn't know where 'internal' addresses are; it only knows where your 'public' address is. So the only way you can get replies from Internet hosts is by pretending that they were sent from the router's public address.
But in your example, the router knows perfectly well where both subnets are. And if the router is both hosts' default gateway, that means the hosts also know well enough how to reach the opposite subnet: A has a route to B, B has a route to A, C has routes to both. Therefore the earlier mentioned reason for NAT doesn't apply.
3If all of those are your devices and there isn't any kind of Internet connection there would be no NAT. NAT is the process of communicating with a limited set of IPs and masquerading the others you got. Most common example is your internet access at home. You're using private IPs for your PC, TV and phone and only a single public IP to access the internet. Just communicating between subnets would be simple routing. Check out some of the other network questions or Wikipedia article on NAT an routing for some more information. Welcome to SU. – Seth – 2018-11-07T10:39:33.757
1Read up on routing (that's why these devices are called "routers"). If C is the default gateway for both A and B, you need only to set routes on C. Most routers are embedded Linux boxes, so
ip route add ...
on the root account, or whatever configuration files it uses. – dirkt – 2018-11-07T10:59:21.987