1 - J'ai chaud / j'ai froid
To talk about how you are feeling, whether you feel cold or warm, we use the construction: avoir chaud/ avoir froid. "Avoir" will agree with the subject; "chaud"/"froid" will never change.
J'ai chaud - I am warm
Ils ont froid - They are cold
Expressions with "avoir" (and "faire") are listed in the second chapter of the workbook of my French Audio Book à Moi Paris.
2 - Il est chaud, elle est froide
To talk about how something feels to the touch, we use "être" + "chaud" or "froid" agreeing in number and gender with the noun it modifies:
La glace est froide - The ice is cold
Tu es très chaude = You are very hot - (as in, "You have a fever")
Watch out: for people, chaud(e/s) and froid(e/s) have an idiomatic meaning:
Elle est froide: She is cold, as in distant.
Elle est chaude: She is horny. Be very careful, this one is quite vulgar, not a good translation of "She is hot"...
3 - C'est chaud, c'est froid
If you are using "c'est", the construction requires you to use only a masculine singular adjective.
C'est chaud, c'est froid. These are the only things you can say when using "c'est."
Le thé, c'est chaud - Tea in general is hot
Mais le thé glacé, c'est froid - But iced tea (in general) is cold
Note, also, the new slang expression "C'est chaud," which means "It's tough, difficult."
Check out my French grammar lesson on C'est versus il est.
4 - Il fait chaud, il fait froid
When talking about the temperature around you (the weather,) use the impersonal construction "Il fait" + "chaud" or "froid" that never changes.
Aujourd'hui, il fait chaud.
En Suède, en hiver, il fait froid.
5 - OK, so to recap about "chaud" and "froid:"
Elle a chaud - never chaude - She is feeling warm
Elle est chaude - It/She is warm/hot to the touch
!! for a person, it means horny
C'est chaud - never chaude - It's hot
Il fait chaud - never chaude - It's warm/hot outside
6 - Watch out!
J'ai un rhume - I have a cold