Here's a quick run-down. These are the key points. Depending on your situation,
there may be other minor advantages or disadvantages that apply.
Advantages of a z-buffer:
Easily implemented in hardware.
Easily implemented in software.
Works well on any scene.
Disadvantages of a z-buffer:
Highly memory intensive (specialized hardware can avoid this drawback.)
Not well suited for higher-level visibility/occlusion culling.
Highly resolution dependent.
Prone to accuracy problems.
Advantages of the c-buffer:
Works well on scenes with large polygons (in these cases, faster than z-buffer
and uses less memory.)
Not resolution dependent in the X-direction.
Works very well with higher-level visibility/occlusion culling algorithms.
Less prone to accuracy problems than z-buffers.
Disadvantages of the c-buffer:
Fast complexity growth with lots of small polygons in complex scenes.
Not as easily adapted for hardware as z-buffers.
Much trickier to code than a z-buffer (especially if you allow
Resolution dependent in the Y direction (same as z-buffer.)
Response provided by Paul Nettle