Serupa dengan karbohidrat sederhana, karbohidrat kompleks dibagi menjadi dua kategori: oligosakarida dan polisakarida. Oligosakarida terdiri dari sejumlah kecil monosakarida, yang tidak melebihi 10. Oligosakarida memiliki peranan penting dalam penyerapan mineral tertentu dan pembentukan asam lemak. Polisakarida sering terdiri dari sejumlah besar monosakarida dan disakarida. Contoh polisakarida termasuk selulosa, dekstrin, glikogen dan pati.
Karbohidrat kompleks biasanya dapat ditemukan dalam roti, sayuran, dan sereal. Contoh makanan yang mengandung karbohidrat kompleks termasuk bayam, ubi jalar, brokoli, buncis, zucchini, lentil, susu skim, biji-bijian dan banyak tanaman polongan dan sayuran lainnya.
Karbohidrat kompleks memiliki nilai gizi yang lebih tinggi daripada karbohidrat sederhana. Mungkin agak membingungkan untuk membedakan karbohidrat sederhana dan kompleks karena fakta bahwa karbohidrat kompleks pun mengandung unsur tertentu yang sederhana. Namun demikian, membedakan keduanya seharusnya tidak menjadi masalah karena struktur kimianya sangat berbeda, dan karena itu, mereka dapat dibedakan oleh sifat gizi mereka.