Skip to content

Commit 6d4bfd9

Browse files
committed
update
1 parent 0bfeb81 commit 6d4bfd9

9 files changed

+258
-14
lines changed

bitwise.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ int main()
1313
c0 = 0b1000;
1414
printf("%u\n", c0);
1515

16-
c0 = 'A';
16+
c0 = '0';
1717
// print bit map
1818
bitmask = 1 << (8*sizeof(c0) - 1);
1919
while (bitmask)

flow_control.c

+109
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
#include <stdio.h>
2+
3+
int main()
4+
{
5+
int i;
6+
char c;
7+
8+
i = 10;
9+
10+
// if-else
11+
if (i > 3)
12+
{
13+
printf("i=%d > 3\n", i);
14+
} else
15+
{
16+
printf("i=%d <= 3\n", i);
17+
}
18+
19+
if (i > 3)
20+
{
21+
printf("i=%d > 3\n", i);
22+
} else if (i > 0 && i <= 3)
23+
{
24+
printf("i=%d between 0 to 3\n", i);
25+
} else
26+
{
27+
printf("i=%d is negative\n", i);
28+
29+
}
30+
31+
i = 5;
32+
if (i > 3)
33+
printf("i=%d > 3\n", i);
34+
printf("the following line\n");
35+
36+
// switch
37+
i = 3;
38+
switch(i)
39+
{
40+
case 1:
41+
printf("one\n");
42+
break;
43+
44+
case 2:
45+
printf("two\n");
46+
break;
47+
48+
case 3:
49+
printf("three\n");
50+
break;
51+
52+
default:
53+
printf("I can only count to three.\n");
54+
}
55+
56+
c = '2';
57+
switch(c)
58+
{
59+
case '1':
60+
printf("one\n");
61+
break;
62+
63+
case '2':
64+
printf("two\n");
65+
break;
66+
67+
case '3':
68+
printf("three\n");
69+
break;
70+
71+
default:
72+
printf("I can only read from 1 to 3.\n");
73+
}
74+
75+
// while
76+
i = 0;
77+
while(i < 100)
78+
{
79+
printf("i = %d\n", i);
80+
if (i == 3)
81+
break; // stop while
82+
83+
i = i + 10;
84+
}
85+
86+
// do-while
87+
printf("\n");
88+
i = 0;
89+
while(i < 3)
90+
{
91+
printf("i = %d\n", i);
92+
i = i + 1;
93+
}
94+
printf("\n");
95+
i = 0;
96+
do
97+
{
98+
printf("i = %d\n", i);
99+
i = i + 1;
100+
} while(i < 3);
101+
102+
// for-loop
103+
for (i = 0; i < 10; i++)
104+
{
105+
printf("loop %d\n", i);
106+
107+
}
108+
109+
}

global_variable_3.c

+6-2
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,18 @@ int main()
1212
i_am_global = 3;
1313
printf("%d\n", i_am_global);
1414

15-
set_global_v(6);
1615

1716
// block
1817
{
1918
int i_am_global;
2019
i_am_global = 4;
21-
printf("%d\n", i_am_global);
20+
printf("block %d\n", i_am_global);
2221
}
22+
printf("%d\n", i_am_global);
23+
2324

25+
set_global_v(6);
26+
printf("%d\n", i_am_global);
27+
2428
return 0;
2529
}

memory_allocate.c

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#include <stdio.h>
2+
#include <stdlib.h>
3+
4+
// pointer
5+
void f(char *p)
6+
{
7+
printf("in function before: %p\n", p);
8+
p = malloc(1024);
9+
printf("in function after: %p\n", p);
10+
}
11+
12+
int main()
13+
{
14+
char *p;
15+
16+
p = NULL;
17+
printf("in main before: %p\n", p);
18+
f(p);
19+
printf("in main after: %p\n", p);
20+
21+
return 0;
22+
}

operators.c

+64
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
#include <stdio.h>
2+
3+
int main()
4+
{
5+
int i, j, k;
6+
int r;
7+
char afh[] = "afh";
8+
char xyz[] = "xyz";
9+
char *p;
10+
11+
// ++ --
12+
i = 0;
13+
r = 0;
14+
r = i++;
15+
printf("result = %d i = %d\n", r, i);
16+
17+
i = 0;
18+
r = 0;
19+
r = i--;
20+
printf("result = %d i = %d\n", r, i);
21+
22+
i = 0;
23+
r = 0;
24+
r = ++i;
25+
printf("result = %d i = %d\n", r, i);
26+
27+
i = 0;
28+
r = 0;
29+
r = --i;
30+
printf("result = %d i = %d\n", r, i);
31+
32+
33+
p = afh;
34+
printf("%c\n", *p);
35+
printf("%c\n", ++*p); // ++*p = ++(*p)
36+
printf("%s\n\n", afh);
37+
38+
p = afh;
39+
printf("%p - %c\n", p, *p);
40+
printf("%p - %c\n", p, *p++); // *p++ = *(p++)
41+
printf("%p\n", p);
42+
printf("%s\n", afh);
43+
44+
// sequence
45+
i = 11;
46+
j = 22;
47+
k = 33;
48+
49+
printf("\n");
50+
printf("i=%d j=%d k=%d\n", i, j, k);
51+
printf("%d\n", ++i + ++j * --k);
52+
printf("i=%d j=%d k=%d\n", i, j, k);
53+
printf("%d\n", ++i + ++j * --k);
54+
//printf("%d\n", i++ + j++ * k--);
55+
printf("i=%d j=%d k=%d\n", i, j, k);
56+
57+
58+
i = 5;
59+
printf("\n");
60+
printf("%d\n", i++ * i++);
61+
62+
return 0;
63+
}
64+

pointer_char.c

+6
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,14 @@
33
int main()
44
{
55
int i;
6+
int *d;
67
char *p;
78
char str[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
89

10+
i = 2;
11+
d = &i;
12+
printf("address d %p %d\n", d, *d);
13+
914
p = NULL;
1015
printf("%d - %p\n", __LINE__, p);
1116
printf("%d - %d\n", __LINE__, p);
@@ -16,6 +21,7 @@ int main()
1621
printf("%d - [%p] [%c]\n", __LINE__, p, *p);
1722
printf("%d - [%p] [%c]\n", __LINE__, p+1, *(p+1));
1823

24+
// for (init; condition; operation)
1925
for (i = 0, p = str; i < 26; i = i + 1, p = p + 1)
2026
{
2127
printf("[%d] [%p] [%c]\n", i, p, *p);

pointer_int.c

+15-9
Original file line numberDiff line numberDiff line change
@@ -2,33 +2,39 @@
22

33
int main()
44
{
5-
int *i;
5+
int *i, **p;
66
int array[10];
77

8+
printf("address of the pointer i[%p]\n\n", &i);
9+
printf("address of the pointer array[%p]\n\n", &array);
10+
811
array[0] = 22;
912
array[1] = 43;
1013
array[2] = 64;
1114
array[3] = 85;
1215
array[4] = 106;
1316
array[5] = 127;
1417

15-
printf("i[%p] array[%p]\n", i, array);
18+
printf("contain of the pointer i[%p] array[%p]\n", i, array);
1619
i = array;
17-
printf("i[%p] array[%p]\n\n", i, array);
20+
printf("contain of the pointer i[%p] array[%p]\n\n", i, array);
1821

19-
printf("[%p] [%d]\n", i, *i);
22+
printf("contain of the pointer i[%p] the value of *i[%d]\n", i, *i);
2023
i = i + 1;
21-
printf("[%p] [%d]\n", i, *i);
24+
printf("contain of the pointer i[%p] the value of *i[%d]\n", i, *i);
2225
i = i + 1;
23-
printf("[%p] [%d]\n", i, *i);
26+
printf("contain of the pointer i[%p] the value of *i[%d]\n", i, *i);
2427
i = i + 1;
25-
printf("[%p] [%d]\n", i, *i);
28+
printf("contain of the pointer i[%p] the value of *i[%d]\n", i, *i);
2629
i = i + 1;
27-
printf("[%p] [%d]\n", i, *i);
30+
printf("contain of the pointer i[%p] the value of *i[%d]\n", i, *i);
2831
i = i + 1;
29-
printf("[%p] [%d]\n", i, *i);
32+
printf("contain of the pointer i[%p] the value of *i[%d]\n", i, *i);
3033
i = i + 1;
34+
printf("contain of the pointer i[%p] the value of *i[%d]\n", i, *i);
3135

3236

37+
p = (int **) malloc(10 * sizeof(int *));
38+
3339
return 0;
3440
}

swap.c

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#include <stdio.h>
2+
3+
void swap_p(int *v1, int *v2)
4+
{
5+
int v_buf;
6+
v_buf = *v1;
7+
*v1 = *v2;
8+
*v2 = v_buf;
9+
}
10+
11+
void swap_i(int v1, int v2)
12+
{
13+
int v_buf;
14+
v_buf = v1;
15+
v1 = v2;
16+
v2 = v_buf;
17+
}
18+
19+
int main()
20+
{
21+
int v1, v2;
22+
23+
v1 = 1;
24+
v2 = 5;
25+
26+
printf("v1 = %d v2 = %d\n", v1, v2);
27+
//swap_i(v1, v2);
28+
swap_p(&v1, &v2);
29+
printf("v1 = %d v2 = %d\n", v1, v2);
30+
31+
32+
return 0;
33+
}

union.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ int main()
1111

1212
union U
1313
{
14-
int i;
15-
float f;
14+
int I;
15+
long L;
1616
};
1717

1818
// long unsigned

0 commit comments

Comments
 (0)