Programmering i C# 9. Pekare och osäker kod.

Slides:



Advertisements
Liknande presentationer
Interface.  Interface är en datatyp och har alltså egen syntax och en hel del egna regler för vad arv från interface innebär.  Interface är renodlad.
Advertisements

Introduktion till C för enchipsdatorer
C-programmering ID120V William Sandqvist Länkad lista
Abstract & sealed.
Polymorfism.
Programmeringsteknik för K och Media
Föreläsning 13 Allt om tentan. Sistaminutenhjälp: På fredag 17 december kl 12 sitter Linda i kemi-fiket och svarar på frågor.
Föreläsning 6 Referenser Objekt som parametrar public/private Klassvariabler och klassmetoder.
1 Föreläsning 6 Klass Object, instans av klass public/private Klassvariabler och klassmetoder.
Sid period2CD5250 OOP med C++ Mats Medin MDH/IDT Objektbaserad programmering –Grundläggande om klasser och objekt – (Arv får vänta)  Iden med klasser.
Programmering i C# 2. Inledande detaljer.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser och instansvariabler -Tabeller av klassobjekt.
Föreläsning 11 Arrayer.
OOP F4:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 4 Metoder klass-metoder instans-metoder.
Programmering i C# 3. Klasser.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 6 ( ) INNEHÅLL: -Mera om tabeller.
Pekare och speciell programstruktur i inbyggda system
Pointers. int a=5; int f(int b) { a--; b++; return b; } int main() { int a=3; printf("%d,",f(a)); printf("%d",a); return 0; }
4. Arv och dynamisk bindning
Vektorer (klassen Vector) Sortering
Programmering i C# 5. Structer.
Programmeringsteknik för Media1 & K1
William Sandqvist C:s minnesmodell.
1. En infrastruktur för programutveckling
Anders Sjögren Pekare. Anders Sjögren Skapa ett program som byter plats på två heltal Pekare.
Jonny Karlsson GRUNDKURS I PROGRAMMERING MED JAVA Föreläsning 9 ( ) INNEHÅLL: -Tabeller av klassobjekt -Användning av Java API specifikationen.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
Föreläsning 9 Gränssnitt. Super Super kan användas till anrop av en omdefinierad metod Super kan användas till anrop av konstruktorer i superklassen Super.
Föreläsning 12 Om slutprovet. Repetition –deklaration av variabler –skapande av objekt (instansiering) –Vektorer och Vector-klassen –Klasser –Instans-/klassvariabler.
Föreläsning 4 Klasser Och Objekt.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 2: Variabler och datatyper Variabler Bindning Typkontroll Några viktiga datatyper.
7. Delegerare och notifierare
Lennart Edblom & Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 2: Variabler och datatyper Variabler Bindning Typkontroll Några viktiga datatyper.
Programmeringsteknik för K och Media
Föreläsning 5 Klasser och instanser
Föreläsning 7 Repetition Sammansatta datatyper –vektor (hakvektor, array) –matris.
Anders Sjögren Data (i primärminnet) som en länkad lista datatypen för varje element i listan är en struktur, post ( struct )
1 Föreläsning 4 Metoder & parametrar Array API och klassen ArrayList.
Malmö högskola Rolf Axelsson 2003/2004 DA7231, 4 poäng Referensvariabel Klass och konstruktorer Klass med set- och get-metoder Klass och fält Fler metoder.
Anders Sjögren Minnen, variabler, att lagra i primärminnet forts. Den här bilden känner ni igen sedan tidigare. Vi skall fortsätta att prata variabeltyper.
TDP004 Objektorienterad Programmering Fö 5 Minneshantering.
Administration Distribution Metabolism Exkretion
KPP053, HT2016 MATLAB, Föreläsning 2
Nordiska Lärarorganisationers Samråd
Lagen om Energikartläggning i stora företag
Information till primärvården Herman Nilsson-Ehle Catharina Lewerin
Lagen om Energikartläggning i stora företag
Lars Calmfors Föreläsning 2 för Riksrevisionen 25/2-2016
Dagens ämnen Matriser Räkneoperationer och räknelagar
BILDSPEL ABISKO, ev. YOUTUBE KLIPP
Marknadsutblick FEBruari 2017.
HUT-veckan 2016 (Hållbar utveckling).
TDP004 Objektorienterad Programmering Fö 8 Sammanfattning
Rapport till Örebro läns landsting om Medarbetarundersökning
Kap 5 Arbetsmarknaden och arbetslösheten -Fig 5
Tillsynsmetodik Thomas Krook.
Föreläsning 9 – Bipolära Transistorer II
Föreläsning 2 - Halvledare
Kapitel 1 Algebra och linjära modeller manada.se.
Kapitel 3 Stökiometri.
Kurvor, derivator och integraler
Regionkommittén.
Årsrapporten 2019 Välkomna till UKÄ:s frukostseminarium! #årsrapport19.
Världs-om-spännande kunskapstävling!
Integrated Project Delivery
Fler gör mer! Fler gör mer! Handlingsplan för minskat
Välkommen till Språkintroduktion på Alléskolan!
Miljömanagement - TKMJ15, 6 hp
Anafylaxi Behandling och omhändertagande
  Antogs vid FN:s toppmöte den 25 september 2015 av samtliga medlemsstater Agendan har 17 globala mål och 169 delmål för hållbar utveckling. Trädde i kraft.
Presentationens avskrift:

Programmering i C# 9. Pekare och osäker kod

Pekare och osäker kod En pekare är en variabel som innehåller en minnesadress Används mycket i C/C++ men ersätts i C# av referenser Kan användas undantagsvis i C# unsafe { int x = 5; int* p = &x; *p = 10; } Programmering i C# - Kapitel 9

Unsafe Kodblock där pekare ska användas markeras unsafe Operatorn & returnerar adress till variabel Tecknet * deklarerar en pekartyp Operatorn * avrefererar en pekare Operatorn -> väljer medlem via pekare Operatorn [] ger offset och avreferering Programmering i C# - Kapitel 9

Pekare till struct Adress kan tas till struct på stack Adress kan också tas till struct som ingår i klassobjekt Finns ju då på heap och hanteras av VES Objektet måste vara låst med fixed class MyClass { public MyStruct s; … } MyClass obj = new MyClass(); fixed (MyStruct* p = &(obj.s)) { // använd p … } Programmering i C# - Kapitel 9

Pekare för vektorer Ett ändamål för pekare är snabb traversering av vektorer Nu menas inte Array-objekt Indexoperatorn, pekararitmetik och operatorn stackalloc stackalloc möjliggör allokering av sammanhängande minne på stack Returnerar en pekare till minnet Programmering i C# - Kapitel 9

Vektor på stack Minne kan inte allokeras unsafe på heap double *p, *arr = stackalloc double[100]; for (p = arr; p < arr + 100; p++) *p = 0; // kan också användas med index: for (int i = 0; i < 100; i++) arr[i] = 0; Minne kan inte allokeras unsafe på heap Pekare kan inte tas till klassobjekt Operatorn sizeof ger objekts storlek i bytes, operanden är typnamn Programmering i C# - Kapitel 9