Initial commit
This commit is contained in:
27
kapitel9/block-scope-ex1.c
Normal file
27
kapitel9/block-scope-ex1.c
Normal file
@@ -0,0 +1,27 @@
|
||||
#include <stdio.h>
|
||||
|
||||
void funk1(void);
|
||||
|
||||
int main(void)
|
||||
{
|
||||
int i = 555;
|
||||
int x = 123;
|
||||
printf("i utanför for: %d\n", i);
|
||||
|
||||
for (int i = 0; i <= 2; i++)
|
||||
{
|
||||
printf("i inuti for: %d\n", i);
|
||||
printf("x går att nå ifrån loopen och är: %d\n", x);
|
||||
}
|
||||
|
||||
printf("i utanför och efter for: %d\n", i);
|
||||
funk1();
|
||||
printf("i i main är fortfarande: %d\n", i);
|
||||
return 0;
|
||||
}
|
||||
|
||||
void funk1(void)
|
||||
{
|
||||
int i = 999;
|
||||
printf("i inuti funk1: %d\n", i);
|
||||
}
|
20
kapitel9/block-scope-ex2.c
Normal file
20
kapitel9/block-scope-ex2.c
Normal file
@@ -0,0 +1,20 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main(void)
|
||||
{
|
||||
int i = 10;
|
||||
|
||||
for (int i = 0; i <= 3; i++)
|
||||
{
|
||||
printf("i inuti första for: %d\n", i);
|
||||
}
|
||||
|
||||
printf("i utanför for: %d\n", i);
|
||||
|
||||
for ( ; i<= 13; i++)
|
||||
{
|
||||
printf("i inuti andra for: %d\n", i);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
20
kapitel9/calloc-ex1.c
Normal file
20
kapitel9/calloc-ex1.c
Normal file
@@ -0,0 +1,20 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
int main(void)
|
||||
{
|
||||
char *a, *b;
|
||||
a = calloc(30, sizeof(char));
|
||||
|
||||
strcat(a, "hej hej");
|
||||
printf("%s\n", a);
|
||||
free(a);
|
||||
|
||||
b = calloc(30, sizeof(char));
|
||||
strcat(b, "hej igen");
|
||||
printf("%s\n", b);
|
||||
free(b);
|
||||
|
||||
return 0;
|
||||
}
|
30
kapitel9/forsta-tecknet.c
Normal file
30
kapitel9/forsta-tecknet.c
Normal file
@@ -0,0 +1,30 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#define SIZE 20
|
||||
|
||||
int main(void)
|
||||
{
|
||||
char *a;
|
||||
int i;
|
||||
a = calloc(SIZE, sizeof(char));
|
||||
strcpy(a, "Hej alla glada");
|
||||
|
||||
printf("Strängen: %s\n", a);
|
||||
|
||||
*a = '\0'; /* "Initialisera" igen */
|
||||
printf("Strängen efter ny initialisering: %s\n", a);
|
||||
|
||||
printf("\nTecken för tecken efter ny initialisering:\n");
|
||||
for (i=0; i<SIZE; i++)
|
||||
{
|
||||
if (*a == '\0')
|
||||
printf("tecken: NULL\n");
|
||||
else
|
||||
printf("tecken: %c\n", *a);
|
||||
a++;
|
||||
}
|
||||
/* Vi måste flytta tillbaks pekaren innan vi frigör */
|
||||
free(a-SIZE);
|
||||
return 0;
|
||||
}
|
9
kapitel9/fungerande-scope-fil1.c
Normal file
9
kapitel9/fungerande-scope-fil1.c
Normal file
@@ -0,0 +1,9 @@
|
||||
#include <stdio.h>
|
||||
|
||||
extern int x;
|
||||
|
||||
int main(void)
|
||||
{
|
||||
printf("x = %d\n", x);
|
||||
return 0;
|
||||
}
|
2
kapitel9/fungerande-scope-fil2.c
Normal file
2
kapitel9/fungerande-scope-fil2.c
Normal file
@@ -0,0 +1,2 @@
|
||||
int x = 5;
|
||||
static int y = 10;
|
19
kapitel9/global-ex1.c
Normal file
19
kapitel9/global-ex1.c
Normal file
@@ -0,0 +1,19 @@
|
||||
#include <stdio.h>
|
||||
|
||||
void funk(void);
|
||||
|
||||
int x = 5;
|
||||
|
||||
int main(void)
|
||||
{
|
||||
printf("x = %d\n", x);
|
||||
printf("++x = %d\n", ++x);
|
||||
funk();
|
||||
printf("++x = %d\n", ++x);
|
||||
return 0;
|
||||
}
|
||||
|
||||
void funk(void)
|
||||
{
|
||||
printf("++x = %d\n", ++x);
|
||||
}
|
10
kapitel9/global-ex2.c
Normal file
10
kapitel9/global-ex2.c
Normal file
@@ -0,0 +1,10 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int x = 999;
|
||||
|
||||
int main(void)
|
||||
{
|
||||
int x = 100;
|
||||
printf ("x = %d\n", x);
|
||||
return 0;
|
||||
}
|
15
kapitel9/icke-fungerande-scope.c
Normal file
15
kapitel9/icke-fungerande-scope.c
Normal file
@@ -0,0 +1,15 @@
|
||||
#include <stdio.h>
|
||||
|
||||
extern int x;
|
||||
extern int y;
|
||||
|
||||
int main(void)
|
||||
{
|
||||
/* Kommer inte att fungera eftersom
|
||||
y är static i filen
|
||||
fungerande-scope-fil2.c
|
||||
*/
|
||||
printf("x = %d\n", x);
|
||||
printf("y = %d\n", y);
|
||||
return 0;
|
||||
}
|
22
kapitel9/med-initialisering.c
Normal file
22
kapitel9/med-initialisering.c
Normal file
@@ -0,0 +1,22 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
int main(void)
|
||||
{
|
||||
char *a, *b;
|
||||
a = malloc(300);
|
||||
*a = '\0';
|
||||
|
||||
strcat(a, "hej hej");
|
||||
printf("%s\n", a);
|
||||
free(a);
|
||||
|
||||
b = malloc(30);
|
||||
*b = '\0';
|
||||
strcat(b, "hej igen");
|
||||
printf("%s\n", b);
|
||||
free(b);
|
||||
|
||||
return 0;
|
||||
}
|
15
kapitel9/memset-ex1.c
Normal file
15
kapitel9/memset-ex1.c
Normal file
@@ -0,0 +1,15 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
int main(void)
|
||||
{
|
||||
char *a;
|
||||
a = malloc(30*sizeof(char));
|
||||
memset(a, '\0', 29);
|
||||
strcat(a, "Hej svejs!");
|
||||
printf("%s\n", a);
|
||||
memset(a, 'A', 15);
|
||||
printf("%s\n", a);
|
||||
return 0;
|
||||
}
|
24
kapitel9/minneshantering-ex1.c
Normal file
24
kapitel9/minneshantering-ex1.c
Normal file
@@ -0,0 +1,24 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
int main(void)
|
||||
{
|
||||
char *meningen;
|
||||
|
||||
/* Allokera minnet */
|
||||
meningen = malloc(sizeof(char)*24);
|
||||
*meningen = '\0'; /* Initialisera strängen ("noll-terminera") */
|
||||
strcpy(meningen, "meningen med livet är");
|
||||
printf("%s\n", meningen);
|
||||
|
||||
/* Utöka minnet till 'meningen' */
|
||||
meningen = realloc(meningen, sizeof(char)*40);
|
||||
strcat(meningen, " att programmera");
|
||||
printf("%s\n", meningen);
|
||||
|
||||
/* Frigör minnet */
|
||||
free(meningen);
|
||||
|
||||
return 0;
|
||||
}
|
18
kapitel9/static-ex1.c
Normal file
18
kapitel9/static-ex1.c
Normal file
@@ -0,0 +1,18 @@
|
||||
#include <stdio.h>
|
||||
|
||||
void funk(void);
|
||||
|
||||
int main(void)
|
||||
{
|
||||
funk();
|
||||
funk();
|
||||
funk();
|
||||
return 0;
|
||||
}
|
||||
|
||||
void funk(void)
|
||||
{
|
||||
int j = 0;
|
||||
j++;
|
||||
printf("%d\n", j);
|
||||
}
|
18
kapitel9/static-ex2.c
Normal file
18
kapitel9/static-ex2.c
Normal file
@@ -0,0 +1,18 @@
|
||||
#include <stdio.h>
|
||||
|
||||
void funk(void);
|
||||
|
||||
int main(void)
|
||||
{
|
||||
funk();
|
||||
funk();
|
||||
funk();
|
||||
return 0;
|
||||
}
|
||||
|
||||
void funk(void)
|
||||
{
|
||||
static int j = 0;
|
||||
j++;
|
||||
printf("%d\n", j);
|
||||
}
|
15
kapitel9/strncpy-ex1.c
Normal file
15
kapitel9/strncpy-ex1.c
Normal file
@@ -0,0 +1,15 @@
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
int main(void)
|
||||
{
|
||||
char stor[20] = "Hej Kalle & Lisa!";
|
||||
char liten[10] = "XXXXXXXXX";
|
||||
|
||||
strncpy(liten, stor, sizeof(liten)-1);
|
||||
|
||||
printf("stor = %s\n", stor);
|
||||
printf("liten = %s\n", liten);
|
||||
|
||||
return 0;
|
||||
}
|
28
kapitel9/testar-array.c
Normal file
28
kapitel9/testar-array.c
Normal file
@@ -0,0 +1,28 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main(void)
|
||||
{
|
||||
int i;
|
||||
char a[5] = "B";
|
||||
char b[5] = { 0 };
|
||||
|
||||
printf("char a:\n");
|
||||
for (i = 0; i<5; i++)
|
||||
{
|
||||
if (a[i] == '\0')
|
||||
printf("tecken: NULL\n");
|
||||
else
|
||||
printf("tecken: %c\n", a[i]);
|
||||
}
|
||||
|
||||
printf("\nchar b:\n");
|
||||
for (i = 0; i<5; i++)
|
||||
{
|
||||
if (b[i] == '\0')
|
||||
printf("tecken: NULL\n");
|
||||
else
|
||||
printf("tecken: %c\n", b[i]);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
20
kapitel9/utan-initialisering.c
Normal file
20
kapitel9/utan-initialisering.c
Normal file
@@ -0,0 +1,20 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
int main(void)
|
||||
{
|
||||
char *a, *b;
|
||||
a = malloc(300);
|
||||
|
||||
strcat(a, "hej hej");
|
||||
printf("%s\n", a);
|
||||
free(a);
|
||||
|
||||
b = malloc(30);
|
||||
strcat(b, "hej igen");
|
||||
printf("%s\n", b);
|
||||
free(b);
|
||||
|
||||
return 0;
|
||||
}
|
Reference in New Issue
Block a user