
Vissa fel återkommer många gånger, som jag endast kommenterat de första gångerna.
Jag har inte läst sodjans långa inlägg, så jag kanske upprepar vad han redan skrivit.
1. Absoluta grunderna
"samt något som kan göra koden till en körbar programfil. Det senare kallas en kompilator"
Kompilatorn gör inte allt jobb. Kompilatorn kompilerar koden till objekfiler (maskinkod), länkaren länkar ihop med andra objekfiler och objektkod från bibliotek till en programfil (exe-fil).
"#include <stdio.h> är en instruktion till kompilatorn som säger åt den att inkludera ett bibliotek som innehåller massvis med funktioner för in- och utmatning."
Nej, fel att säga bibliotek. Instruktionen inkluderar all text i filen stdio.h (copy/paste) så att kompilatorn också kompilerar den koden. Kompilatorn inkluderar inte några bibliotek, det gör länkaren, OM man använt en standardfuktion som printf() i sin kod. stdio.h innehåller bara deklarationer av vad som finns i biblioteken.
"Eftersom det är main-funktionen så vart den anropad av systemet, och systemet tar nollan som ett tecken på att allt gick bra och programmet avslutades utan fel."
Nja, det finns ingen generell regel att man måste returnera 0 om allt går bra. Man kan returnera vilket värde som helst, och ett annat program kan kolla i ett script vad det här programmet returnerade för värde.
2. Variabler
"Det första nya i detta program är raden int heltalsvariabel."
... och det kallas för en definition av en variabel.
"Det finns ett gäng olika typer av variabler tillsammans med heltal."
Det är oftast bättre att tala om en variabels 'datatyp' än bara 'typ'. Typ är ett för allmänt ord och kan missförstås vad man avser.
"Notera här hur initialiseringen av variabeln (int heltalsvariabel) endast får göras en gång per variabel."
Nej. Det är definitionen som endast får göras en gång.
3. Inmatning av tal
"Ampersand betyder före ett varibelnamn att vi utför en referencing, mer om det kommer senare när vi går in på pekare. Tills vidare får du nöja dig med att man måste göra så när man använder scanf."
Nej det måste man inte.
scanf() förväntar att man skickar variablernas adress (pekare i C terminologi) som argument, så att scanf() kan lagra den inlästa informatione på rätt plats i minnet. För en enkel int, char eller float variabel får man fram variabelns adress med ampersand tecknet.
Men snälla, gör den första C introduktionen i historien som skippar scanf() helt och hållet! scanf() är en riktig skifunktion som ingen vettig människa använder i praktiken. Och, varför krångla till det såhär i början av introduktionen med att blanda in pekare...
4. if-satser
"if (323 == 323)"
Fruktansvärt dåligt exempel. Byt ut en sidan till en variabel åtminstone!
"== jämför två värden/variabler"
== jämför två värden, inget mer. De två värdena kan givetvis hämtas ur variabler, eller beräknas på annat sätt.
"If utför något konditionellt (villkorat), alltså, om ett villkor stämmer kör den delarna inom måsvingar. Om värdet inte stämmer,"
Aningen missvisande beskrivning. if kollar inte "om ett villkor stämmer". if kollar endast om utrycket inom parentes (som kan vara ett "logiskt" eller "matematiskt" uttryck) evalueras till 0. Notera att C betraktar heltalsvärdet 0 som "falskt" och alla heltalsvärden som inte är 0 som "sant". Sen så har jag aldrig hört ordet villkorat tidigare, men nog 'villkorligt'.
"if (! 45 == 22)"
Operatorn ! är starkare än == så det här evalueras nog inte som du tänkt.
5. Loopar
"en så kallad infinite loop"
oändlig loop
"Alla värden över 0 räknas som sanna"
Alla heltalsvärden som inte är lika med 0 räknas som sanna
6. Arrays
"Arrays har många namn på svenska, däribland lista, fält, vektor, serie"
lista och serie tycker jag inte passar in här, men nog fält och vektor. Array är inte svenska om jag inte misstar mig.
"Den första raden initialiserar en array"
Det är en 'definition' av ett fält.
"index, men den variabeln måste vara av heltalstyp"
Det går nog bra med en flyttal också. Kompilatorn kommer att automatiskt konvertera flyttalet till ett heltal, dvs kapa bort decimaldelen och indexera med heltalsdelen.
7. char-typen
8. Strängar - grunderna
9. Funktioner
"Sedan inom parentes anges hur många argument den tar, samt av vilken sort"
använd 'datatyp' istället för 'sort'.
10. switch-sats
11. Typer
Använd hellre 'Datatyper'
"Hur mycket varje sorts variabel rymmer beror helt på din kompilator"
En int lagras i minimum 16 bit. int kan vara större, t.ex. 32, 64 eller ännu mer beroende på systemet.
short lagras i minimum 16 bit. I system med t.ex. 32 bitars int brukar short vara mindre än int, dvs 16 bit.
long lagras i minimum 32 bit.
Alltså, C specificerar minimum storlekar!
Nu minns jag inte vad C specificerar för char, men jag vet att det finns platformar som har 32 bitars char, eftersom CPU'n endast kan hantera 32 bitars tal.
"Tyvärr har vi inga exakta siffror på precisionen"
float ger ca 7 siffrors noggranhet och double ger ca 15 siffrors noggranhet.
"Detta är för att void-typen inte har någon funktion i variabelsammanhang"
'void' är engelska och betyder ungefär 'tomrum' eller 'ingenting'.
"Experimentera gärna för att ta reda på exakt hur hög prioritet casting har, jag vet inte själv"
"casting" är i nästhögsta prioritetsgruppen, på samma nivå som t.ex.: sizeof, ++, --, !, ~, osv.