How do I decide whether to use 可以, 会 or 能? According to every dictionary I've seen so far, there is a big overlap in these:


可以　=  can, may, be able to
会　　=  can, be able to, able
能　　=  can, may, able, capable


How do I properly choose which one to use when I have a sentence with can / may / able? What are the differences in primary use of these characters?
可以 means I can do it, but may I? For example : 


  我 可以 开车吗？


May I drive? (Have the implication of I want to drive)


  我 可以 开车。


I can drive (have the implication of I can, but I don't want to (unwilling to do so))





会 means I am able to, or I know how to do it For example : 


  你 会 开车吗？


Can you drive? (Are you able to drive? Do you know how to drive? Or even Do you have a drivers license?)


  我 会 开车。


I can drive (I know how to drive)





能 is similar to can, in most cases they are interchangeable. It means capable of doing something or Would you...? For example :


  你 能 开车吗？


Would you drive?  (Would you mind driving?)




Other Meanings


Apart from the meaning of willingness, 可以 can also mean good/not bad.  For example : 


  你的中文还 可以 。


Your Chinese is not bad.
能 can also mean power / energy For example 能量.