Initial commit
This commit is contained in:
16
kapitel10/loopa-pekaradresser.c
Normal file
16
kapitel10/loopa-pekaradresser.c
Normal file
@@ -0,0 +1,16 @@
|
||||
#include <stdio.h>
|
||||
#define SIZE 11
|
||||
|
||||
int main(void)
|
||||
{
|
||||
int i;
|
||||
char namn[SIZE] = "Jack-Benny";
|
||||
printf("Adressen till 'namn': %p\n", (void*)&namn);
|
||||
|
||||
for (i=0; i<SIZE; i++)
|
||||
{
|
||||
printf("Element %i -> %p\n", i, (void*)&namn[i]);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
18
kapitel10/pekararitmetik-ex1.c
Normal file
18
kapitel10/pekararitmetik-ex1.c
Normal file
@@ -0,0 +1,18 @@
|
||||
#include <stdio.h>
|
||||
#define LANGD 5
|
||||
|
||||
int main(void)
|
||||
{
|
||||
int i;
|
||||
int x[LANGD] = {0, 1, 2, 3, 4};
|
||||
int *px;
|
||||
|
||||
px = x;
|
||||
|
||||
for (i = 0; i<LANGD; i++)
|
||||
{
|
||||
printf("%d: %p\n", *px, (void*)px);
|
||||
px = px + 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
25
kapitel10/pekararitmetik.c
Normal file
25
kapitel10/pekararitmetik.c
Normal file
@@ -0,0 +1,25 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main(void)
|
||||
{
|
||||
int i;
|
||||
char fnamn[] = "Jack-Benny";
|
||||
char *enamn = "Persson";
|
||||
|
||||
printf("Förnamn: %s\n", fnamn);
|
||||
printf("Efternamn: %s\n\n", enamn);
|
||||
|
||||
printf("Förnamn: %p %p\n", (void*)&fnamn, (void*)fnamn);
|
||||
printf("Efternamn: %p %p\n", (void*)&enamn, (void*)enamn);
|
||||
|
||||
/* Skriv ut ett tecken i taget med mellanslag mellan varje
|
||||
tecken. Detta görs genom att addera 1 till pekarvariabeln
|
||||
för varje iteration */
|
||||
for (i=0; i<=7; i++)
|
||||
{
|
||||
printf("%c ", *enamn);
|
||||
enamn = enamn + 1;
|
||||
}
|
||||
printf("\n");
|
||||
return 0;
|
||||
}
|
9
kapitel10/pekare-ex1.c
Normal file
9
kapitel10/pekare-ex1.c
Normal file
@@ -0,0 +1,9 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main(void)
|
||||
{
|
||||
float pi = 3.14159;
|
||||
printf("Adressen till 'pi' är: %lu\n", &pi);
|
||||
|
||||
return 0;
|
||||
}
|
9
kapitel10/pekare-ex2.c
Normal file
9
kapitel10/pekare-ex2.c
Normal file
@@ -0,0 +1,9 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main(void)
|
||||
{
|
||||
float pi = 3.14159;
|
||||
printf("Adressen till 'pi' är: %p\n", (void*)&pi);
|
||||
|
||||
return 0;
|
||||
}
|
10
kapitel10/pekare-till-falt.c
Normal file
10
kapitel10/pekare-till-falt.c
Normal file
@@ -0,0 +1,10 @@
|
||||
#include <stdio.h>
|
||||
#define SIZE 11
|
||||
|
||||
int main(void)
|
||||
{
|
||||
char namn[SIZE] = "Jack-Benny";
|
||||
printf("Adressen till 'namn': %p\n", (void*)&namn);
|
||||
|
||||
return 0;
|
||||
}
|
15
kapitel10/pekare-till-pekare-ex1.c
Normal file
15
kapitel10/pekare-till-pekare-ex1.c
Normal file
@@ -0,0 +1,15 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main(void)
|
||||
{
|
||||
int x = 5;
|
||||
int *px;
|
||||
int **ppx;
|
||||
|
||||
px = &x;
|
||||
ppx = &px;
|
||||
|
||||
printf("%d\n", **ppx);
|
||||
|
||||
return 0;
|
||||
}
|
36
kapitel10/pekare-till-pekare-ex2.c
Normal file
36
kapitel10/pekare-till-pekare-ex2.c
Normal file
@@ -0,0 +1,36 @@
|
||||
#include <stdio.h>
|
||||
#define LANGD 3
|
||||
|
||||
int main(void)
|
||||
{
|
||||
int i;
|
||||
char *ord[LANGD];
|
||||
char *pc;
|
||||
char **ppc;
|
||||
|
||||
ord[0] = "hund";
|
||||
ord[1] = "katt";
|
||||
ord[2] = "kanin";
|
||||
|
||||
/* Skriv ut de tre strängarna */
|
||||
for (i = 0; i < LANGD; i++)
|
||||
{
|
||||
printf("%s\n", ord[i]);
|
||||
}
|
||||
printf("\n");
|
||||
|
||||
/* Skriv ut tecken för tecken */
|
||||
for (i = 0; i < LANGD; i++)
|
||||
{
|
||||
ppc = ord + i;
|
||||
pc = *ppc;
|
||||
while (*pc != '\0')
|
||||
{
|
||||
printf("%c ", *pc);
|
||||
pc = pc + 1;
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
22
kapitel10/pekarvar-ex1.c
Normal file
22
kapitel10/pekarvar-ex1.c
Normal file
@@ -0,0 +1,22 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main(void)
|
||||
{
|
||||
/* Skapa vanliga variabler & fält */
|
||||
float pi = 3.14159;
|
||||
|
||||
/* Deklarera pekarna */
|
||||
float *ppi;
|
||||
|
||||
/* Sätt pekaren till adressen av variabeln */
|
||||
ppi = π
|
||||
|
||||
/* Skriv ut det som pekaren pekar på och dess innehåll */
|
||||
printf("Adressen till 'pi': %p\n", (void*)&pi);
|
||||
printf("'pi' innehåller: %.5f\n\n", pi);
|
||||
printf("Adressen till 'ppi': %p\n", (void*)&ppi);
|
||||
printf("'ppi' pekar på värdet: %.5f\n", *ppi);
|
||||
printf("'ppi' innehåller: %p\n", (void*)ppi);
|
||||
|
||||
return 0;
|
||||
}
|
15
kapitel10/pekarvar-ex2.c
Normal file
15
kapitel10/pekarvar-ex2.c
Normal file
@@ -0,0 +1,15 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main(void)
|
||||
{
|
||||
char fnamn[] = "Jack-Benny";
|
||||
char *enamn = "Persson";
|
||||
|
||||
printf("Förnamn: %s\n", fnamn);
|
||||
printf("Efternamn: %s\n\n", enamn);
|
||||
|
||||
printf("Förnamn: %p %p\n", (void*)&fnamn, (void*)fnamn);
|
||||
printf("Efternamn: %p %p\n", (void*)&enamn, (void*)enamn);
|
||||
|
||||
return 0;
|
||||
}
|
23
kapitel10/pekarvar.c
Normal file
23
kapitel10/pekarvar.c
Normal file
@@ -0,0 +1,23 @@
|
||||
#include <stdio.h>
|
||||
#define SIZE 11
|
||||
|
||||
int main(void)
|
||||
{
|
||||
/* Skapa vanliga variabler & fält */
|
||||
float pi = 3.14159;
|
||||
char namn[SIZE] = "Jack-Benny";
|
||||
|
||||
/* Deklarera pekarna */
|
||||
float *ppi;
|
||||
char *pnamn;
|
||||
|
||||
/* Sätt pekarna till adressen av variablerna */
|
||||
ppi = π
|
||||
pnamn = &namn[5];
|
||||
|
||||
/* Skriv ut det som pekarna pekar på */
|
||||
printf("Pi = %.5f\n", *ppi);
|
||||
printf("Namn = %s\n", pnamn);
|
||||
|
||||
return 0;
|
||||
}
|
Reference in New Issue
Block a user