3 ?
T |?
!y?
3 ?
T |?
!y?
3 ?
T
3 ?
T
C?y# 
?y# 
?
"d 7?
?
"d 7?
?
?
4?
?


?
?
·?
^(?y?¥×1à
Q9
^(?y¥
·?
^(?y?¥×1à
Q9
^(?y¥
×1+ ?b
P¨·? V[
P??÷Fe±a?
×1+ ?b
P¨·? V[
P??÷Fe±a?
Xaúrb
4.1 ·?·?M
¥à
Q
·?·?M
¥à
Q
4.2 ·?M
¥?lD?¨
·?M
¥?lD?¨
4.3
F¥·?
F¥·?
4.4f
¥·?
f
¥·?
4.1 ·?·?M
¥à
Q
·?·?M
¥à
Q
1.
=i1?
=i1?
aa
aa
=i?i%?í¥I|
=i?i%?í¥I|

19
?q"d¥
=i% ??μv
9
?q"d¥
=i% ??μv
¥i%?í
?
13?b
¥i%?í
?
13?b
1
ZL5 ?A?1
B?i%?íI
1
ZL5 ?A?1
B?i%?íI
|??I|ü
^i%?í¥
|??I|ü
^i%?í¥
“1?
1?
”b
?i%
b
?i%
?í?μB??B¥1?b
?í?μB??B¥1?b

21?
S
M¥i%?í?ib
b
1?
S
M¥i%?í?ib
b
?i
=i?í¥1?D
=i?í?¥

?i
=i?í¥1?D
=i?í?¥

^
?? ??]¥à
Qb
^
?? ??]¥à
Qb
2.M
1?
M
1?
aa
aa
" d s
¥óM
¥
=i?í¥
" d s
¥óM
¥
=i?í¥

S1?

S1?
2.·?D·?M

·?D·?M


1·?
·?
aa
aa
'1?
'1?
B?M
¥1??1?M
¥·?bYV M
 ¥· ?

B?M
¥1??1?M
¥·?bYV M
 ¥·
s??M
b

2·?M

·?M

aa
aa

�i% 
M
1?¥M


�i% 
M
1?¥M

·?M

·?M

num_pointer¥′ü
^M

¥′ü
^M

num¥1?b·?D·?
¥1?b·?D·?
M
¥ uYü
^M
′DM
¥ uYb
M
¥ uYü
^M
′DM
¥ uYb

31V
U·?M

·_¥M
-W ¥1 "  ¨ · ?
1V
U·?M

·_¥M
-W ¥1 "  ¨ · ?

?

?
“*”V
Ub
è ?·?M

è ?·?M

num_pointerD
·_¥M

D
·_¥M

num¥1"
¥1"
V
U1
V
U1
*num_pointer

'
'
*num_pointer?N?M

?N?M

numb
yN/
?? ¥T¨M]
yN/
?? ¥T¨M]
num=3; /*|
|
3°¤?óM

°¤?óM

num*/
num_pointer=# /*
P num_pointer·_
·_
num */
*num_pointer=3; /*|
| 3?ó·?M
?ó·?M
 num_pointer
·_¥M

·_¥M
 *
4.2 ·?M
¥?lD?¨
·?M
¥?lD?¨
4.2.1 ·?M
¥?lDM1
·?M
¥?lDM1
[? è
? è
4.1] ·?M
¥?lDM1
U èb
·?M
¥?lDM1
U èb
main()
{ int num_int=12,*p_int; //?lB?·_?lB?·_ int?
¥·?M
?
¥·?M

float num_f=3.14,*p_f; //?lB?·_?lB?·_ float?
¥·?M
?
¥·?M

char num_ch=’p’,*p_ch; //?lB?·_?lB?·_ char?
¥·?M
?
¥·?M

p_int=&num_int; /* |M
 |M
 num_int¥1??′ó¥1??′ó p_int */
p_f=&num_f; /* |M
 |M
 num_f¥1??′ó¥1??′ó p_f */
p_ch=&num_ch; /* |M
 |M
 num_ch¥1??′ó¥1??′ó p_ch */
printf(“num_int=%d,*p_int=%d\n”,num_int,*p_int);
printf(“num_f=%4.2f,*p_f=%4.2f\n”,num_f,*p_f);
printf(“num_ch=%c,*p_ch=%c\n”,num_ch,*p_ch);
} ?????? 
12
???2T???2T
num_int=12,*p_int=12
num_f=3.14,*p_f=3.14
num_ch=p,*p_ch=p
??
a
ü??
a
ü 

1h ??¥M
?l? 
h ??¥M
?l? 
aa
aa
·?M
¥?l
·?M
¥?l
DB?M
¥?lM1"M

-
B??|
DB?M
¥?lM1"M

-
B??|
“*”

·?M
¥?lS
M?? ?B"

·?M
¥?lS
M?? ?B"
??
??
*·?M

·?M

[,*·?M

·?M

2……];
?i
?i
N
H¥·?M

N
H¥·?M

p_intap_fap_ch

i?·_

i?·_

? 8¥M

?·?
^? b¥b
P¨? b·? ?^
? 8¥M

?·?
^? b¥b
P¨? b·? ?^
ê"d?á"dób
ê"d?á"dób
(2)?W ??¥?′? 
?W ??¥?′? 
aa
aa
|1?
|1?
(

)
|1?
¥ì
T
|1?
¥ì
T

M


M

è ?
è ?
&num_inta&num_fa&num_ch¥2TsY1M


num_intanum_fanum_ch¥1?b
?i
?i
·?M
o
i b·?
1? Oo
^M] ?
·?M
o
i b·?
1? Oo
^M] ?
?M
¥1?b
?M
¥1?b
è ?·?M

è ?·?M

p_intap_fap_ch

o
sY¤
l int?a
float?a char?M
¥1??5pb
?M
¥1??5pb

3a ??¥
{? 
a ??¥
{? 
aa
aa
·?

·?

*

P¨ °¤`ùW¤`ù
?Z
TsY
{M

num_intanum_fanum_ch¥′b
?i
?i
? ??C·?M
 -¥?|
? ??C·?M
 -¥?|
“*”
^·?
?
^·?
?
`ù·?M

·_¥M
¥′7d·?
?b
`ù·?M

·_¥M
¥′7d·?
?b
[? è
? è
4.2]
P¨·?M
 p3
{ ?
P¨·?M
 p3
{ ?
2??
?
6?
Vl
??
?
6?
Vl
?v
?
{b
?v
?
{b
/*???

P¨·?M
 p3
???

P¨·?M
 p3
2??
¥
6?
{
??
¥
6?
{
*/
main()
{ int num1,num2;
int *num1_p=&num1,*num2_p=&num2,*pointer;
printf(“Input the first number:,); scanf(“%d”,num1_p);
printf(“Input the second number:,); scanf(“%d”,num2_p);
printf(“num1=%d,num2=%d\n”,num1,num2);
if( *num1_p > *num2_p ) // ?T
?T
num1>num2

5?D·?
5?D·?
pointer= num1_p,num1_p= num2_p,num2_p=pointer;
printf(“min=%d,max=%d\n”,*num1_p,*num2_p);
}
?????? 
13
??? f ?
??? f ?
Input the first number:9oú
Input the second number:6oú
num1=9,num2=6
min=6,max=9
??
a
ü
??
a
ü



1?
?
5?¥
?¥
if? 
?T
?T
*num1_p>*num2_p 
' num1>num2

5?D
5?D
·?
P
·?
P
num1_p·_M

·_M

num2
?l′
?l′
num2_p·_
·_
M

M

num1
?v′b
?v′b

2

printf(“min=%d,max=%d\n”,*num1_p,
*num2_p); ? YV·?M
W¤`ùM

? YV·?M
W¤`ùM

¥′b
'? è¥
'? è¥
) ?
±
^
^?D·?M
 num1_p

num2_p¥′7?
^M

¥′7?
^M

num1

num2¥′
M

¥′
M

num1

num2i??D ˉ ?e′KaYV·?M

{
i??D ˉ ?e′KaYV·?M

) ?2Tb
) ?2Tb
4.2.2 ·?M
Tf
?
·?M
Tf
?
1.·?M
; V[T1f
¥??9 V[Tf
·?M
; V[T1f
¥??9 V[Tf
¥
L?b
2.·?M
T
L?
HD
YM
B"9
^
·?M
T
L?
HD
YM
B"9
^
“′.
′.
?
?
”'|·?M
¥′
B?1?.?ó$?¨f
'|·?M
¥′
B?1?.?ó$?¨f
¥??
A?
^B?·?M
b
¥??
A?
^B?·?M
b
?i
?i
$?¨f
?
?M
L?·?M
¥′?
$?¨f
?
?M
L?·?M
¥′?
V[?M
L?·?M

·_¥M
¥′b
V[?M
L?·?M

·_¥M
¥′b
[? è? è 4.3]
P¨f
?¨Z
T? [? è? è 4.2]1 p
L?1·?M
b1 p
L?1·?M
b
/*exchange()?
?D?
?D 2???·?M

·_¥M
¥′???·?M

·_¥M
¥′ */
/*???? 2? (1·_??
¥·?M
? (1·_??
¥·?M
 */
/*Rí′íRí′í */
void exchange(int *pointer1,int *pointer2)
{ int temp;
temp=*pointer1,*pointer1=*pointer2,*pointer2=temp;
}
/*?f
?f
main()*/
main()
{ int num1,num2;
/*?li
S·?M

?li
S·?M

num1_p

num2_p */
int *num1_p=&num1,*num2_p=&num2;
printf(“Input the first number:,); scanf(“%d”,num1_p);
printf(“Input the second number:,);
scanf(“%d”,num2_p);
printf(“num1=%d,num2=%d\n”,num1,num2);
if( *num1_p > *num2_p ) /* '
'
num1>num2)*/
exchange(num1_p,num2_p); /*·?M
T
L?
·?M
T
L?
*/
/*
{
?a¥
{
?a¥
num1

num2¥′
¥′
*/
printf(“min=%d,max=%d\n”,num1,num2);
}
??? f ?
??? f ?
Input the first number:9oú
Input the second number:6oú
num1=9,num2=6
min=6,max=9
??·?M

??·?M

pointer1
·_M

·_M

num1

pointer2
·_M

·_M

num2

f
?¨ 7
S
H
?s
¥i% bWf
?¨2
a ?'$
dbb
ù ?$?¨f
?
?M
L ?·?M
¥
?·?M
¥
′? V[?M
ì
·_¥M
¥′b
′? V[?M
ì
·_¥M
¥′b
92 1
 ?¨$?¨f
?M¥M
′ 
1
 ?¨$?¨f
?M¥M
′ 
??
P¨·?
·?M
Tf
L?b 
??
P¨·?
·?M
Tf
L?b 
?13?$?¨f
H
P??·?M

?13?$?¨f
H
P??·?M

·_¥M
¥′?
3Mf
?¨2
aY
·_¥M
¥′?
3Mf
?¨2
aY
V?M¥
L?·?

L?·?M
|M¥
V?M¥
L?·?

L?·?M
|M¥
′
=/ ?b
′
=/ ?b
[? è
? è
4.4]
{ ? 3??
???
Vv?l¥
¨?
{b
??
???
Vv?l¥
¨?
{b
1 p
P¨M
¥·?Tf
?¨¥
L? ?
LCb
1 p
P¨M
¥·?Tf
?¨¥
L? ?
LCb
/******************************************************/
//exchange()?
?D
?
?D
2???·?M

·_¥M
¥′
???·?M

·_¥M
¥′
//??
??
2? (1·_??
¥·?M

? (1·_??
¥·?M

// Rí′í
Rí′í
/******************************************************/
void exchange(int *pointer1,int *pointer2)
{ int temp;
temp=*pointer1,*pointer1=*pointer2,*pointer2=temp;
}
/*?f
?f
main()*/
main()
{ int num1,num2,num3;
/*Vo

{ ?
Vo

{ ?
3??
??
*/
printf(“Input the first number:,); scanf(“%d”,&num1);
printf(“Input the second number:,); scanf(“%d”,&num2);
printf(“Input the third number:,); scanf(“%d”,&num3);
printf(“num1=%d,num2=%d,num3=%d\n”,num1,num2,num3);
/*
?
?
*/
if( num1 < num2 ) /*num1<num2*/
exchange( &num1,&num2 );
if( num1 < num3 ) exchange( &num1,&num3 );
if( num2 < num3 ) exchange( &num2,&num3 );
/*
{
?2T
{
?2T
*/
printf(“
?2T
?2T
,%d,%d,%d\n”,num1,num2,num3);
} ???
???

14

4.3
F¥·?
F¥·?
4.3.1 à
1.à
Q
F¥·?
F¥·?
aa
aa
F
=i?¥ 
S1?
Fí
í
F
=i?¥ 
S1?
Fí
í
¥·?
¥·?
aa
aa
Fí
í
=i?¥ 
S1?b
Fí
í
=i?¥ 
S1?b
2.·_
F¥·?M
¥?l
·_
F¥·?M
¥?l
·_
F¥·?M
¥?lD·_
YM
¥·?
·_
F¥·?M
¥?lD·_
YM
¥·?
M
¥?lZEB"b
M
¥?lZEB"b
è ?
è ?
int array[10],*pointer=array(

&array[0]);
?
?
int array[10],*pointer;
pointer"
"
array;
?i
?i

F
}V
F
=i?¥ 
S1?
D?

F
}V
F
=i?¥ 
S1?
D?
1
?í
í¥1?M]
[ V[¨
F
ó·?M
?′b
?í
í¥1?M]
[ V[¨
F
ó·?M
?′b
3.
Fí
í¥?¨
Fí
í¥?¨
Fí
í¥?¨; V¨/SE9 V¨·?Eb
P¨/
Fí
í¥?¨; V¨/SE9 V¨·?Eb
P¨/
SE°4 7
P¨·?E
P
"S??]¨
=i
a
SE°4 7
P¨·?E
?
 yb
4.3.2 YV·??¨
Fí
í
YV·??¨
Fí
í
?Tμ
?Tμ
“int array[10],*pointer=array;”

5
5

1

pointer+i

array+i?
^
Fí
í array[i]¥1? ?m
¥1? ?m
9-6
Ub

2

*(pointer+i)

*(array+i)ü
^
Fí
í array[i]b

3

·_
F¥·?M
9 V|  AT
^
F
y
·_
F¥·?M
9 V|  AT
^
F
y
7 V?/SE ?
P¨b è ?
7 V?/SE ?
P¨b è ?
pointer[i]?N?
?N?
*(pointer+i)b
?i
?i


pointer+1·_
F¥/B? í
í7?
^e?1
P
·_
F¥/B? í
í7?
^e?1
P
·?M

·?M

pointer¥′
¥′
+1b 
L=M1 pointer+1*size(size1B
1B
?í
í]¨¥3?
b
?í
í]¨¥3?
b
è ?L
!·?M

è ?L
!·?M

pointer¥? -′ 1
¥? -′ 1
30005
5
pointer+1
1
1
3000+1*2=30027?
^
7?
^
3001b
[? è
? è
4.5]
P¨·_
F¥·?M
 ??¨
Fí
íb
P¨·_
F¥·?M
 ??¨
Fí
íb
/*???

P¨·_
F¥·?M
 ??¨
Fí
í
???

P¨·_
F¥·?M
 ??¨
Fí
í
*/
main()
{ int array[10],*pointer=array,i;
printf(“Input 10 numbers:,);
for(i=0; i<10; i++)
scanf(“%d”,pointer+i); //
P¨·?M
 ?
{ ?
Fí
í¥′
P¨·?M
 ?
{ ?
Fí
í¥′
printf(“array[10]:,);
for(i=0; i<10; i++)
printf(“%d,,*(pointer+i)); //
P¨·_
F¥·?M

{
P¨·_
F¥·?M

{
F
printf(“\n”);
}
??? f ?
??? f ?
Input 10 numbers,0 1 2 3 4 5 6 7 8 9oú
array[10],0 1 2 3 4 5 6 7 8 9 ???
???

15

??
a
ü
??
a
ü


????
????
3??
??
6?¥
?¥
2?
?
for? ?N?/
¥??

? ?N?/
¥??

for(i=0; i<10; i++,pointer++)
scanf(“%d”,pointer);
printf(“array[10]:,);
pointer=array;
for(i=0; i<10; i++,pointer++)
printf(“%d”,*pointer);
± I5
± I5



1 ?T ??
 ?T ??
“pointer=array;”????2T ?$
????2T ?$
h
£b

2'? è?9 V[?
P¨
'? è?9 V[?
P¨
i ?T?ì e?M
?
?T?ì e?M
?
?8
1??$4
U·? V[?D1"
b
?8
1??$4
U·? V[?D1"
b
a
ü 


1·?M
¥′
^ V[?M¥
[A??i ? -
·?M
¥′
^ V[?M¥
[A??i ? -
′?5 ?^pb
′?5 ?^pb

2·_
F¥·? M
 V[·_
F[a¥
=i?
·_
F¥·? M
 V[·_
F[a¥
=i?
í
ù ?
àμ
L=ilb
í
ù ?
àμ
L=ilb

3·_
F¥·?M

·_
F¥·?M

px

py

é?


é?


1"
¥cl
1"
¥cl
1 V[é?¥

oμ[/+?
 V[é?¥

oμ[/+?
pxn,px++/++px,px--/--px,px-py
·pxn

|·?V? -ê?_ -
|·?V? -ê?_ -
+n

í|
í|
-n

n
?
?ê 7 ?
^
?
?ê 7 ?
n?3?bA ? px++/++px

px--/--
px
^ pxn¥+ è
¥+ è
n=1b
·px-py

·?-W¥
?
7?
^·? ¥ 1 ? -
·?-W¥
?
7?
^·? ¥ 1 ? -
μb
2

1"
1"
V
U
?·?
· 1? -W aê?¥ -a1" -?1
V
U
?·? 1? -W aê?¥ -a1" -?1
la?1vb
la?1vb
è ? ?T·?
è ? ?T·?
px
·1?·?
·1?·?
py
·1?- -5
·1?- -5
px
spy¥′1
¥′1
1b
4.3.3 
FTf
?
F
T ? ?
H  ¤
l
L?
F¥ 
S1? T
L?
? ?  ¤
H|
F¥ 
S1?.?ó??
Fb
H|
F¥ 
S1?.?ó??
Fb
? ?·_
F ¥· ?M
a 
F#·_
F¥·?M
? ?·_
F ¥· ?M
a 
F#·_
F¥·?M
Tf
?
H Vμ??N?
T
'é

^B?'·
H Vμ??N?
T
'é

^B?'·
?
Tf
?

?
Tf
?


1??a
L??¨
F

??a
L??¨
F


2??a
L??¨·?M

??a
L??¨·?M


3??¨·?M
a
L?¨
F

??¨·?M
a
L?¨
F


4??¨
F
a
L?¨·?M

??¨
F
a
L?¨·?M

4.3.4 2?
F¥·?# ·?M

?
F¥·?# ·?M

1,2?
F¥·?
?
F¥·?
L
!μ ?/
F?l? 
L
!μ ?/
F?l? 
int array[3][4];

1

V
V
2?
F? A
F

?
F? A
F

array}V
F¥ 
S1
}V
F¥ 
S1
?
?
^B?[?1?êé? e?¥?·?
^B?[?1?êé? e?¥?·?
·array+i

?·?′·_
?·?′·_
2?
F¥?
?
F¥?
i?b
·*(array+i)
·?′·_?
·?′·_?
i??

e???
??

e???
1
? ˉ1·?b
1
? ˉ1·?b
·*(*(array+i))

Fí
í array[i][0]¥′b


arrayT·?`ù
Fí
í
T·?`ù
Fí
í
array[i][j]¥ì
T
¥ì
T
*(*(array+i)

j)
?i
?i
?·?
^B?)·? ?m
?·?
^B?)·? ?m
9-7
Ub

2V
V
1?
F? A
F

?
F? A
F

array?
?
1?/S¥
B
?/S¥
B
?′
?′
]?BF?¥
]?BF?¥
1?
F
array[0]aarray[1]a
array[2]

ì (?
ì (?
4?í
íF?b
(?y?
(?y?
F
}V
F¥1?
F
}V
F¥1?

[

[
array[i]
^
?
?
i?
?
1?
F¥1?
?
F¥1?
·_??¥?
·_??¥?
0
í
í
^B?
í
í
^B?
[
Fí
í1?êé? e?¥
·?
[
Fí
í1?êé? e?¥
·?
·array[i]+j
·?′·_
Fí
í
·?′·_
Fí
í
array[i][j]b
·*(array[i]+j)

Fí
í array[i][j]¥′b
?Tμ
?Tμ
“int array[3][4],*p=array[0]

”5
5
p+1·_/B
·_/B
?í
í ?m
?í
í ?m
9-8
Ub


pT·?`ù
Fí
í
T·?`ù
Fí
í
array[i][j]¥ì
T
¥ì
T
*(p+(N
N
*
?

?

+j) )
2.?·?M

?·?M

aa
aa
·_?
·_?
n?í
íF?¥B?
F¥
·?M

·?M

(1)?lì
T
?lì
T
??
??
(*·?M

·?M

)[n];
?i?i ,*·?M
·?M
,?¥ ?|?
??5?
 · ?
F?¥ ?|?
??5? · ? ——
F¥
?í
í?
^B?·?F¥
?í
í?
^B?·? aaaa ·?
F
'c?·?
F
'c? 6?o
b
(2)?′?′
?·?M

?·?M

"
"
2?
F
| ?·?M

?·?M
;
[? è
? è
4.6]
P¨?·?
·?
?Z
T
{
P¨?·?
·?
?Z
T
{
2?
F
¥ ?Bí
íb

1

P¨?·?
P¨?·?
/*???

P¨?·?
{
???

P¨?·?
{
2?
F¥ ?Bí
í
?
F¥ ?Bí
í
*/
main()
{ int array[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
int (*pointer)[4],row,col;
pointer=array;
printf(“Input row =,); scanf(“%d”,&row);
printf(“Input col =,); scanf(“%d”,&col);
printf(“array[%1d][%1d] = %d\n”,row,col,*(*(pointer+row)+col));
}
??? f ?
??? f ?
Input row = 1oú
Input col = 2oú
array[1][2] = 7

2

P¨
·?
P¨
·?
/*???

P¨
·?
{
???

P¨
·?
{
2?
F¥ ?Bí
í
?
F¥ ?Bí
í
*/
main()
{ int array[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
int *pointer,row,col; /*?lB?
?lB?
(


)·?M

·?M

pointer*/
pointer=array[0]; /*ó

(


)·?M

·?M

pointer?′
?′
*/
printf(“Input row =,); scanf(“%d”,&row);
printf(“Input col =,); scanf(“%d”,&col);
printf(“array[%1d][%1d] = %d\n”,row,col,
*(pointer+(row*4+col)));
}
3,2?
F·?Tf
?
2?
F¥·?Tf
L?
Hμ
·??·?
??
Tb
?
F¥·?Tf
L?
Hμ
·??·?
??
Tb
M?¥¨ ?¤
s
L?
F·?¥??A ?
P¨M??
T¥·
M?¥¨ ?¤
s
L?
F·?¥??A ?
P¨M??
T¥·
?M
 ?/
U
?M
 ?/
U
L?
L?
·?
·?
?·?
?·?
? ?
??
??

·?M


·?M

?·?M

?·?M

4.3.5 ?
F¥
LC
???V??
F¥vl
^?
?M¥b??
F?
???V??
F¥vl
^?
?M¥b??
F?
1á
Fbá
F¥ ??
^?
Y5 íE ?9


íE ?9


¥ f ?íES?;
@) ?31?? ?n
=i bWb
¥ f ?íES?;
@) ?31?? ?n
=i bWb
ì ?
F
^· ???V???
L=31·?
???V???
L=31·?
F¥vlb


C?y? V ?¨
=i¥
# h
db of
[# · _
?y? V ?¨
=i¥
# h
db of
[# · _
F¥·?M
 V?
F

P¨¥+? ?
LC?
Fb
F¥·?M
 V?
F

P¨¥+? ?
LC?
Fb
?
F¥'é
^ 
 B?·_
F¥·?M
B?·_
F¥·?M
 b
[? è
? è
4.7] ?
F¥
LCb
/*???

LC?
F
???

LC?
F
*/
#include,alloc.h”
#include,stdlib.h”
main()
{ int *array=NULL,num,i;
printf(“Input the number of element:,); scanf(“%d”,&num);
/*
# h?
F
P¨¥
=i v
# h?
F
P¨¥
=i v
*/
array=(int *)malloc( sizeof(int) * num );
if ( array==NULL ) /*
=i
# h
>?4
U|
=i
# h
>?4
U|
*/
{ printf(“out of memory,press any key to quit……”);
exit(0); /*?????Rí?T"d
?????Rí?T"d
*/
}
/*4
U
{ ? num?

?

*/
printf(“Input %d elements:,,num);
for (i=0; i<num; i++) scanf(“%d”,&array[i]);
/*
{D
{ ?¥
{D
{ ?¥
num?

?

*/
printf(“%d elements are:,,num);
for (i=0; i<num; i++) printf(“%d,”,array[i]);
printf(“\b,); /* ÷"KaB?
a¥s??
÷"KaB?
a¥s??
“

”*/
free(array); /*
db? malloc()f
# h¥
=i v
f
# h¥
=i v
*/
}
??? f ?
??? f ?


Input the number of element,3oú
Input 3 elements,1 2 3oú
3 elements are,1,2,3
??
a
ü
??
a
ü



1

array=(int *)malloc( sizeof(int) * num );?  aa
aa
malloc()f
f


sizeof
?

?
1 of
 of
malloc()
·¨E
¨E
void *malloc(unsigned size)
·?

=i¥?
i% us
¥?é1
?

=i¥?
i% us
¥?é1
size¥ ?? bWb
·Rí′
# h??5Rí?s

=i v¥ 
S1? ?5
Rí′
# h??5Rí?s

=i v¥ 
S1? ?5
Rí
Rí
NULLb
·f
e?
f
e?
alloc.h

stdlib.hb
malloc()f
¥ Rí ′
^ B ? í ? ? · ?  +?
^ V[·_ ?
f ¥ Rí ′ B ? í ? ? · ?  +?
^ V[·_ ?
??¥
b?
??¥
b?
L=
P¨ malloc()f
HA?| Rí′ <?
f
HA?| Rí′ <?
D?$?′·?M
¥
??
D?$?′·?M
¥
??
[
pb
[
pb
2
?

?
sizeof
·ì
T

T
sizeof(M

 ??

M

 ??

)
·?
 pM
 ??]¨¥
=i3?

??
b è ?
?
 pM
 ??]¨¥
=i3?

??
b è ?
IBM-PC



sizeof(int)=2b
± I5 ?? ?
P¨
?? ?
P¨
sizeof(int) p
p
1?
?
int?
]¨¥
=i3?
7?
^
P¨è

]¨¥
=i3?
7?
^
P¨è

“2”1
I
1$
1
I
1$

2

scanf(“%d”,&array[i]);? 
? 
printf(“%d,”,array[i]);
? 
|· _
F¥ ·?M
?T
F

P¨
[üA?
|· ·?M
?T
F

P¨
[üA?
??¨
Fí
�E5 ?
P¨b
??¨
Fí
�E5 ?
P¨b

3

printf(“\b,);? 
“\b” ?? ?¥T¨
^
P;S?ê?KaB?
?? ?¥T¨
^
P;S?ê?KaB?
a¥s??
a¥s??
“


 ?a
{B? b ì [r ? ÷ "
 ?a
{B? b ì [r ? ÷ "
-
"¥b

4

free(array);?  aa
aa
of
of
free()
·¨E
¨E
void free(void *ptr)
·?

db? ptr·_¥
=i v
ptr
^?¨
malloc()f
¥Rí′b
f
¥Rí′b
·Rí′íb
Rí′íb
·f
e?
f
e?
stdlib.h

alloc.hb
e5

P¨ malloc()f
# h¥
=i v ?
f
# h¥
=i v ?
T2
a?#
H
P¨ free()f
í[
dbb - 
- 
^?ì
P¨
^?ì
P¨
malloc()f
H ?T?#
H
d b? 
P
f
H ?T?# 
¨ ¥
=i v V
yü{D"d¥
=i'÷
¨ ¥
=i v V
yü{D"d¥
=i'÷
V7?á??íE???b
V7?á??íE???b
4.4 3?1¥·?·_3?1¥·?M

3?1¥·?·_3?1¥·?M

3?1
=i?¥ 
S1??13?1¥·? V[
3?1
=i?¥ 
S1??13?1¥·? V[
?lB?3?·?M
·_B?3?1b
?lB?3?·?M
·_B?3?1b
4.4.1 3?1¥V
UD?¨
3?1¥V
UD?¨
(?y?; V[¨3?
FV
U3?19 V¨
(?y?; V[¨3?
FV
U3?19 V¨
3?·?M
 ?V
U ?¨
H; V[??3??¨9
3?·?M
 ?V
U ?¨
H; V[??3??¨9
V[?8?¨b
V[?8?¨b
1.???¨
???¨
[? è? è 4.8]
P¨3?·?M
V
U?¨3?1b
P¨3?·?M
V
U?¨3?1b
main()
{ char *string=”I love Beijing.”;
for(; *string!=’\0’; string++) printf(“%c”,*string);
printf(“\n”);
}
??
a
ü
??
a
ü
char *string="I love Beijing.";? 
?li
S3?·?M

?li
S3?·?M

string

¨1è

¨1è

“I
love Beijing.Ӵ1?
?"d1? 7Bai%1è
¥1?
?"d1? 7Bai%1è
¥
=i v¥
n1?ó
¥
=i v¥
n1?ó
string?′b
?? 9 Vs? ?/
U¥
H? 
?? 9 Vs? ?/
U¥
H? 
char *string

string="I love Beijing."

?i
?i
3?· ?M

3?· ?M

string??i%1è

??i%1è

¥1?71è
¥
= ?
'3?1'
&
^
¥1?71è
¥
= ?
'3?1'
&
^
i%?"d1? 7B¥
=i v?i1á@
i%?"d1? 7B¥
=i v?i1á@
FB?2
S?
FB?2
S?
’\0’b
2.?8?¨
?8?¨
[? è
? è
4.9] ? |?8?¨¥÷E?
? |?8?¨¥÷E?
[? è
? è
4.8]b
/*???

P¨3?·?M
V
U?¨3?1
???

P¨3?·?M
V
U?¨3?1
*/
main()
{ char *string=”I love Beijing.”;
printf(“%s\n”,string);
}
??
a
ü
??
a
ü


printf("%s\n",string);? 
YV·_3?1¥·?M

YV·_3?1¥·?M

string

?8?¨
·_¥
?8?¨
·_¥
3?1¥e ?"d
n5
{
3?1¥e ?"d
n5
{
string·_¥?B?3? ?
·_¥?B?3? ?
a
P string1?F
P-·_/B?3? ×ˉ

V
?°à??3?12
S?b
?°à??3?12
S?b
?i
?i
 
??¥
F
^?

F
?BQ?
{
 
??¥
F
^?

F
?BQ?
{
¥ ??í
í¥o
??í
í
{b
¥ ??í
í¥o
??í
í
{b
è ?
è ?
int array[10]={……};
......
printf("%d\n",array); /*??¨E
^dE¥
??¨E
^dE¥
*/
......
3.3?·?M
D3?
F-1?
3?·?M
D3?
F-1?
ù ?¨3?·?M
3?
F?
LC3?1¥i%
ù ?¨3?·?M
3?
F?
LC3?1¥i%
) ??=?
^μ uY¥?
1B
b
) ??=?
^μ uY¥?
1B
b

1i%
= ??]b
i%
= ??]b
3?·?M
?i%¥
^3?1¥
n1?73?
F?
3?·?M
?i%¥
^3?1¥
n1?73?
F?
i%¥
^3?1'
&
F¥
?í
íibB?3?b

2?′Z
T?]b
?′Z
T?]b
3?·?M
 V?¨/
¥?′? ?′
3?·?M
 V?¨/
¥?′? ?′
char *pointer;
pointer="This is a example.";
73?
F
ù ? V[?l
H
S??
¨ ?
73?
F
ù ? V[?l
H
S??
¨ ?
′? ?8?′b/
¥¨E
^dE¥
′? ?8?′b/
¥¨E
^dE¥
char char_array[20]

char_array="This is a example."; /*dE¨E
dE¨E
*/

3·?M
¥ ′
^ V[?M¥3?·?M
9?
·?M
¥ ′
^ V[?M¥3?·?M
9?
è?  7
F
}V
F¥ 
S1?
^B?è
7è
è?  7
F
}V
F¥ 
S1?
^B?è
7è

^?
$?M¥b

^?
$?M¥b
4.6 ·?
F
4.6.1 ·?
F
1.à
Q
F¥
?í
í?
^B?·?
b·?
F1?
a
¨?·_?3?1
P3?1) ?÷FZLa
2b
¨?·_?3?1
P3?1) ?÷FZLa
2b
2.?lì
T
?lì
T
??
??
*
F
[í
í?
]
?i
?i
D?·?M
?lì
T
D?·?M
?lì
T
“<
??
??
>(*?·?M
?·?M


)[<í
í?
>]”¥μYb
[? è
? è
4.12] μ ??9
m
 h?3

¨?Vl?
μ ??9
m
 h?3

¨?Vl?
v
{
b351 p
P¨
?f
??
??f
v
{
b351 p
P¨
?f
??
??f
?é?
{ ?
{b
/*???
·?
F?¨
U è
???
·?
F?¨
U è
*/
/***********************************************/
/* sort()f
3?·?
Fé?
?
f
3?·?
Fé?
?
*/
/*??
??
name——3?·?
F
3?·?
F
count——í
í?
*/
/*Rí′í
Rí′í
*/
/***********************************************/
void sort(char *name[],int count)
{ char *temp_p;
int i,j,min;
/*
P¨ê4E
?
P¨ê4E
?
*/
for(i=0; i<count-1; i++) /*??ì e?ê4Q
??ì e?ê4Q
*/
{ min=i; /*??'QKl1¥ê?
??'QKl1¥ê?
*/
for(j=i+1; j<count; j++) /*
=?ìê'Q¥Kl1
=?ìê'Q¥Kl1
*/
if(strcmp(name[min],name[j])>0) /*i÷l¥1
i÷l¥1
*/
min=j; /* i-
 i-
*/
if(min!=i) /*i÷l¥1?Dê?
i÷l¥1?Dê?
*/
temp_p=name[i],name[i]=name[min],name[min]=temp_p;
}
}
/*?f
?f
main()*/
main()
{ char *name[5]={“BASIC”,”FORTRAN”,”PASCAL”,”C”,”FoxBASE”};
int i=0;
sort(name,5); //
P¨3?·?
F
T
L??¨
?f
P¨3?·?
F
T
L??¨
?f
/*
{
?2T
{
?2T
*/
for(; i<5; i++) printf(“%s\n”,name[i]);
}
???2T
???2T
BASIC
C
FORTRAN
FoxBASE ??  ?
??  ?

16

PASCAL
3?1¥·?
3?1¥·?
3?1
=i?¥ 
S1??13?1¥·? V[?
3?1
=i?¥ 
S1??13?1¥·? V[?
lB?3?·?M
·_B?3?1b
lB?3?·?M
·_B?3?1b
3?1¥V
UD?¨
3?1¥V
UD?¨
(?y?; V[¨3?
FV
U3?19 V¨3
(?y?; V[¨3?
FV
U3?19 V¨3
?·?M
 ?V
U ?¨
H; V[??3??¨9 V[
?·?M
 ?V
U ?¨
H; V[??3??¨9 V[
?8?¨b
?8?¨b
1.???¨
???¨
[? è
? è
]
P¨3?·?M
V
U?¨3?1b
P¨3?·?M
V
U?¨3?1b
/*? è}
óq

? è}
óq

AL9_8.C*/
main()
{ char *string=”I love Beijing.”;
for(; *string!=’\0’; string++) printf(“%c”,*string);
printf(“\n”);
} [??
U
??
U ]
???2T
???2T
I love Beijing.
??
a
ü
??
a
ü
char *string="I love Beijing.";? 
?l i
S3?·?M

?l i
string

¨1è

¨1è

“I love
Beijing.Ӵ1?
?"d1? 7Bai% 1è
¥
= i v ¥
¥1?
?"d1? 7Bai% 1è
¥
= i v ¥
n1?ó
n1?ó
string?′b
?? 9 Vs? ?/
U¥
H? 
?? 9 Vs? ?/
U¥
H? 
char *string

string="I love Beijing."

?i
?i
3?·?M

3?·?M

string?  ?i%1è
¥1?
?  ?i%1è
¥1?
7 1 è
 ¥
= ?
'3?1'
&
^i%?"d1?
7 1 è
 ¥
= ?
'3?1'
&
^i%?"d1?
7B¥
=i v?i1á@FB?2
S?
7B¥
=i v?i1á@FB?2
S?
’\0’b
2.?8?¨
?8?¨
[? è
? è
] ? |?8?¨¥÷E?
? |?8?¨¥÷E?
[? è
? è
9.8]b
/*? è}
óq

? è}
óq

AL9_9.C*/
/*???

P¨3?·?M
V
U?¨3?1
???

P¨3?·?M
V
U?¨3?1
*/
main()
{ char *string=”I love Beijing.”;
printf(“%s\n”,string);
} [??
U
??
U
]
??
a
ü
??
a
ü


printf("%s\n",string);? 
YV·_3?1¥·?M

YV·_3?1¥·?M

string

?8?¨
·_¥
?8?¨
·_¥
3?1¥e ?"d
n5
{
3?1¥e ?"d
n5
{
string·_¥?B?3? ?
·_¥?B?3? ?
a
P string1?F
P-·_/B?3? ×ˉ

V
?°à??3?12
S?b
?°à??3?12
S?b
?i
?i
 
??¥
F
^?

F
?BQ?
{
 
??¥
F
^?

F
?BQ?
{
¥ ??í
í¥o
??í
í
{b
¥ ??í
í¥o
??í
í
{b
è ?
è ?
int array[10]={……};
......
printf("%d\n",array); /*??¨E
^dE¥
??¨E
^dE¥
*/
......
3.3?·?M
D3?
F-1?
3?·?M
D3?
F-1?
ù ?¨3?·?M
3?
F?
LC3?1¥i%
ù ?¨3?·?M
3?
F?
LC3?1¥i%
) ??=?
^μ uY¥?
1B
b
) ??=?
^μ uY¥?
1B
b

1i%
= ??]b
i%
= ??]b
3?·?M
?i%¥
^3?1¥
n1?73?
F?
3?·?M
?i%¥
^3?1¥
n1?73?
F?
i%¥
^3?1'
&
F¥
?í
íibB?3?b

2?′Z
T?]b
?′Z
T?]b
3?·?M
 V?¨/
¥?′? ?′
3?·?M
 V?¨/
¥?′? ?′
char *pointer;
pointer="This is a example.";
73?
F
ù ? V[?l
H
S??
¨ ?
73?
F
ù ? V[?l
H
S??
¨ ?
′? ?8?′b/
¥¨E
^dE¥
′? ?8?′b/
¥¨E
^dE¥
char char_array[20] 
char_array="This is a example."; /*dE¨EdE¨E */

3·?M
¥ ′
^ V[?M¥3?·?M
9?
·?M
¥ ′
^ V[?M¥3?·?M
9?
è?  7
F
}V
F¥ 
S1?
^B?è
7è
è?  7
F
}V
F¥ 
S1?
^B?è
7è

^?
$?M¥b

^?
$?M¥b
3?1·?Tf
?
3?1·?Tf
?
[? è
? è
] ¨f
?¨Z
T
LC3?1¥ˉ?b
¨f
?¨Z
T
LC3?1¥ˉ?b
/*? è}
óq

? è}
óq

AL9_10.C*/
/**********************************************************/
//string_copy()f
ˉ?B?3?1
f
ˉ?B?3?1
*/
//??3?·?
??3?·?
str_from¤
l÷13?·?

l÷13?·?
str_toi%
"S1
i%
"S1
//Rí′í
Rí′í
/**********************************************************/
void string_copy(char *str_from,char *str_to)
{ int i=0;
for(; (*(str_to+i)=*(str_from+i))!=’\0’; i++) ; //?ì81 b? 
?ì81 b? 
}
main()
{char array_str1[20]=”I am a teacher.”;
char array_str2[20];
string_copy(array_str1,array_str2); /*
F
T
L? */
printf(“array_str2=%s\n”,array_str2);
} [??
U
??
U
]
???2T
???2T
I am a teacher.
??
a
ü
??
a
ü


for(; (*(str_to+i)=*(str_from+i))!=’\0’; i++) ;
? ¥3?V?1
n5|÷1?¥? -3? ˉ ?
? ¥3?V?1
n5|÷1?¥? -3? ˉ ?
?
" S1 ? ?a
?3?
'?′Vr
T¥′
^?
?
" S1 ? ?a
?3?
'?′Vr
T¥′
^?
^2
S?b ?T?
^  5 M  ê ? M

 5 M ê ? M

i¥′9
¥′9
1[L
[L
ˉ? /B ?3? ?T
^2
S?52
?ìb +?
ˉ? /B ?3? ?T
^2
S?52
?ìb +?
^5ˉ?aa
?ì2
-2
S?Xüˉ?b
^5ˉ?aa
?ì2
-2
S?Xüˉ?b


C?y?¨?′
?a7?
^ ?′ ?  ?
LC
?y?¨?′
?a7?
^ ?′
?′ ?T 

t) ?{ ?v¥
2??? 
L
?′ 

t) ?{ ?v¥
2??? 
L
C3?1¥ˉ?¥¨Eü
^Kz¥ è£b
C3?1¥ˉ?¥¨Eü
^Kz¥ è£b
·?
FD?f
·?
FD?f
main()¥??
¥??
·?
F
1.à
Q
F¥
?í
í?
^B?·?
b·?
F1?
a
¨?·_?3?1
P3?1) ?÷FZLa
2b
¨?·_?3?1
P3?1) ?÷FZLa
2b
2.?lì
T
?lì
T
??
??
*
F
[í
í?
]
?i
?i
D?·?M
?lì
T
D?·?M
?lì
T
“<
??
??
>(*?·?M
?·?M


)[<í
í?
>]”¥μYb
[? è
? è
] μ ??9
m
 h?3

¨?Vl?v
μ ??9
m
 h?3

¨?Vl?v
{
b351 p
P¨
?f
??
??f
{
b351 p
P¨
?f
??
??f
?é?
{ ?
{b
/*? è}
óq

? è}
óq

*/
/*???
·?
F?¨
U è
???
·?
F?¨
U è
*/
/***********************************************/
/* sort()f
3?·?
Fé?
?f
3?·?
Fé?
? */
/*???? name——3?·?
F3?·?
F count——í
í?
*/
/*Rí′íRí′í */
/***********************************************/
void sort(char *name[],int count)
{ char *temp_p;
int i,j,min;
/*
P¨ê4E
?
P¨ê4E
? */
for(i=0; i<count-1; i++) /*??ì e?ê4Q
??ì e?ê4Q
*/
{ min=i; /*??'QKl1¥ê???'QKl1¥ê? */
for(j=i+1; j<count; j++) /*
=?ìê'Q¥Kl1
=?ìê'Q¥Kl1 */
if(strcmp(name[min],name[j])>0) /*i÷l¥1i÷l¥1 */
min=j; /* i- i- */
if(min!=i) /*i÷l¥1?Dê?i÷l¥1?Dê? */
temp_p=name[i],name[i]=name[min],name[min]=temp_p;
}
}
/*?f
?f
main()*/
main()
{ char *name[5]={“BASIC”,”FORTRAN”,”PASCAL”,”C”,”FoxBASE”};
int i=0;
sort(name,5); /*
P¨3?·?
F
T
L??¨
?f
P¨3?·?
F
T
L??¨
?f
sort()*/
/*
{
?2T
{
?2T */
for(; i<5; i++) printf(“%s\n”,name[i]);
} [??
U??
U ]
???2T???2T
BASIC
C
FORTRAN
FoxBASE
PASCAL
??
a
ü??
a
ü

1
L???¥′.?
L???¥′.?
sort( name,5 ) 
? ?
void sort(char *name[],int count)

2 3?1¥1?o
P¨ strcmp()f
b??3?·?
Ff
name ¥
? í
í ?
^B?·_3?1¥·?
[μ
strcmp(name[min],name[j])b
?f
?f
main()¥??¥??
[a¥????f
[a¥????f
main()?
P¨ í??
Tb
L=
?
f
main()9
^ V[·???¥b9
^ V[·???¥b
[? è? è ] ¨]B??
LCóq¥F
á3
áb???? ¥ V 3 ?¨]B??
LCóq¥F
á3
áb???? ¥ V 3 ?
óq
1óq
1 lock.exe ¨ E1  ¨ E1  lock +|- <$) ?¥óq
$) ?¥óq
> ? ?,+”
1F
á1F
á,-”13
áb
/*? è}
óq
? è}
óq
 */
/*???
{??f
¥?¨
U è???
{??f
¥?¨
U è */
main(int argc,char *argv[])
{ char c;
if (argc != 3) printf("?
?
??
?
? \n");
else
{ c=*argv[1]; /*? |?=?
L?3?1¥?B?3?? |?=?
L?3?1¥?B?3? */
switch(c)
{ case '+',/*3?F
á3?F
á */
{ /*F
á??
F
á??
*/
printf("3?F
á??
b3?F
á??
b \n");
}
break;
case '-',/*3?3
á3?3
á */
{ /*3
á??
3
á??
*/
printf("3?3
á??
b3?3
á??
b \n");
}
break;
default,printf("?=??
p?=??
p \n");
}
}
} [??
U??
U ]
1.?f
?f
main()¥μ??
T
¥μ??
T
main(int argc

char *argv[])
{ … …}
2.
L?¥ ?÷
L?¥ ?÷
?{??¥?f
A??T"d
/
{ ?
?{??¥?f
A??T"d
/
{ ?
?f
¥ V3?óq
[ #
3¥
L?  ?aí
?f
¥ V3?óq
[ 3¥  ?aí
ú' Vb

7?¥B?ì
T1

7?¥B?ì
T1
V3?óq

L?
V3?óq

[
L? 2……]
è ?'? è??¥¨E
è ?'? è??¥¨E
lock +|- <$) ?¥óq
$) ?¥óq


>oú
°

TC¥"?ìa/9 V°¤ ? ¨ Options |
Arguments [
{ ??f
31¥
L?o?
{ ?ò?
[
{ ??f
31¥
L?o?
{ ?ò?

M
#?
W¨ bìs 7 V3?óq
V
8
{b

M
#?
W¨ bìs 7 V3?óq
V
8
{b
ü'? è7y
{ ?
ü'? è7y
{ ?
“+|- <$) ?¥óq

$) ?¥óq

>”' Vb
3.??
a
ü
??
a
ü

1??
??
argc
^

7 ? ? ?
¥?

V3?óq

7 ? ? ?
¥?

V3?óq
'
&9
B?b
'
&9
B?b
'? è???
'? è???
argc¥′1
¥′1
3
locka+|-aóq
óq
b

2??
??
argv
^B?3?·?
F'??
^B?3?·?
F'??
argv
n5
^B?
F

í?
1?? argc¥′ í
í′?
^
¥′ í
í′?
^
·_
L?3?1¥·?b
·_
L?3?1¥·?b
'? è?í
í argv[0]·_? 1?
L?3?1
“lock”


í argv[1] ·_?
·_?
2?
L?3?1,+|-Ӓ
í
argv[2]·_?
·_?
3?
L?3?1
?
L?3?1
“$) ?¥óq

$) ?¥óq

”b
L
¨·?`ùe?M
Vo
{ ? ???
1
p
! ??·?M
Q
Q
Q
PQ·_ ??
¥
Kv?Q·_Qv?Q·_Kl? ?a?
?l?v¥
¨?
{? ??
b
? òI?s
? ?l·_??M
¥·?M
 ?aYV
?l·_??M
¥·?M
 ?aYV
“*
·?M

·?M

Ӵ?
T' V`ùM?¥e?M
b
¥?
T' V`ùM?¥e?M
b