Yliopiston etusivulle Suomeksi Inte på svenska No english version available
Helsingin yliopisto Tietojenkäsittelytieteen laitos
 

Tietojenkäsittelytieteen laitos

Helsingin yliopisto / Tietojenkäsittelytieteen laitos

Vuosien 2000 ja 2001 luennoija Jan Lindström on koonnut luentomateriaalinsa verkkosivustoksi, joka on kurssin opiskelijoiden käytettävissä.

Copyright © 2000 Jan Lindström. Tämän oppimateriaalin käyttö on sallittu vain yksityishenkilöille opiskelutarkoituksissa. Materiaalin käyttö muihin tarkoituksiin, kuten kaupallisilla tai muilla kursseilla, on kielletty.

Suurin osa C-kielen syntaksista on käsitelty jo 581325-0 Ohjelmoinnin perusteet -kurssilla ja 581326-3 Java-ohjelmointi -kurssilla. Kyseisiä asioita ei hänen materiaalissaan käsitellä. Materiaali keskittyy niihin C-kielen piirteisiin, joita ei löydy Java-kielestä. Lisäksi kurssilla käsitellään dynaamista muistinkäyttöä, tietorakenteiden toteutusta ja kirjastojen laatimista C-kielellä. Seuraavassa on esitelty C-kielen tärkeimmät erot Java-kieleen:

  • C-kielessä EI ole olioita.
  • C-kielessä on muistiosoitepointtereita ja siis osoitearitmetiikkaa.
  • C-kielessä taulukot eivät ole olioita ja indeksien rajoja ei tarkisteta.
  • C-kielessä merkkijonot eivät ole olioita, vaan `\0` -merkkiin päättyviä muistialueita.
  • C-kielessä ei ole automaattista muistinhallintaa.
  • C-kielessä on etumerkittön kokonaislukutyyppi.
  • C-kielessä ei ole boolean tyyppiä vaan int on boolean tyyppi.
  • C-kielessä on varatut sanat struct, union, typedef.
  • C-kielessä tyyppimuunnos (cast) tehdään automaattisesti vaikka tietoa voi kadota.
  • C-kielessä funktiolla voi olla vaihtuva parametrilukumäärä.
  • C-kielessä ei ole metodien kuormitusta.
  • C-kielessä on #define, #include jne. -makroja.