, . .
< >( )
declaration. , , . .
:
int fun1(int x, int y, char* c); int fun1(int, int, char*);
" " , , , . "" , "-" . , . , .
33
- (double, float, int ..). . :
- [ - ];
- [ ];
- .
- . void.
- . - :
- ,
- ,
- , .
, , . - , - .
- , -, - .. , 0.
34
- (char)
:
char ID [N];
ID , N , N .
, char ST[10] 10 , 9 . .
|
|
, .
:
char st[10]={'y','e','s','\0'};
6 ;
char st [10]="Yes";
3 '\0'.
char st[]={'y','e','s','\0'};
.
35
, , . - , - .
- , -, - .. , 0.
:
int a[2][3]; /*
a[0][0] a[0][1] a[0][2]
a[1][0] a[1][1] a[1][2] */
double b[10]; /* 10 double */
int w[3][3] = { { 2, 3, 4 },
{ 3, 4, 8 },
{ 1, 0, 9 } };
w[3][3]. , , , .
36
- , .
- , . - , . ().
a[0][0] | a[0][1] | a[0][2] | a[0][3] |
a[1][0] | a[1][1] | a[1][2] | a[1][3] |
a[2][0] | a[2][1] | a[2][2] | a[2][3] |
, , :
= < > * < > * < >
, 1 255, , , 1 , , , 12 (1 * 3 * 4 ) . , : 3 4 12 . . . : a - , - , - .
, : < ;> [1][2]...[N].
: < ;> []. : int a[100]. 100 . . , : a[0], a[2],..., a[99].
: : a[0][0], a[0][1], a[0][2], a[0][3], a[1][0], a[1][1], a[1][2], a[1][3], a[2][0], a[2][1], a[2][2], a[2][3].
|
|
36
. , . .
& ,
p = &c;
p c (, p c). & , : . , , .
* . , . , x y int, ip int. , , & *.
int = 1, = 2, z[10];
int *ip; /* ip - int */
ip = &x; /* ip x */
y = *ip; /* y 1 */
*ip = 0; /* x 0 */
ip = &z[0]; /* ip z[0] */
x, y z . ip
int *ip;
p , p++ p , , p+=i , i - , . - , .
, , . , , . , , , .
int a[10];
a 10, . . 10 a[0], a[1],..., a[9].
a[i] i - . pa int, . .
int *pa;
pa = &a[0];
pa a, , pa a[0].
x = *pa;
a[0] x.
pa , pa+1 , pa+i - i - pa, a pa-i - i - pa. , pa a[0],
*(pa+1)
a[1], a+i - a[i], a *(pa+i) - a[i].
37
. main.
:
int a[2][3]; /*
a[0][0] a[0][1] a[0][2]
a[1][0] a[1][1] a[1][2] */
float b[10]; /* 10 double */
int w[3][3] = { { 2, 3, 4 },
{ 3, 4, 8 },
{ 1, 0, 9 } };
w[3][3]. , , , .
C main: argc argv.
:
int main(int argc, char *argv[])
argc integer .
argv char - . . .
argv[0] -
argv[1] -
argv[2] -
|
|
argv[argc-1] -
argv[argc] - NULL
38
/ ( printf scanf) stdio .
; | |
d | : int * |
i | : int *. ( 0 ) ( 0x 0X ) |
o | ( ); int * |
u | ; unsigned int * |
x | ( 0x 0X ); int * |
c | ; char *. ( ) . - ; , -, %1s |
s | ( ); char *, , '\0', |
e, f, g | , , ; , , , ; float * |
% | %, |
; | |
d, i | int; |
o | unsigned int; (octal) ( ) |
x, X | unsigned int; ( 0x 0X ), 10...15 abcdef ABCDEF |
u | unsigned int; |
c | int; |
s | char *; , \0, , |
f | double; [-]m.dddddd, d ( 6) |
e, E | double; [-]m.ddddddexx [-]m.ddddddExx, d ( 6) |
g, G | double; %e %E, , -4, ; %f. |
p | void *; ( ) |
% | ; % |
39
, (, , , .) stdio .
fopen :
fp = fopen(name, mode);
- , . . : , . : (read - "r"), (write - "w") (append - "a"), . . . ; "b" (binary - ).
, , - , . , , getc putc. getc ; , .
int getc(FILE *fp);
getc , *fp; EOF.
putc c fp
int putc(int , FILE *fp);
EOF
|
|
- . : , ; stdin, stdout stderr; <stdio.h>. stdin , stdout stderr - . getc, putc, stdin stdout getchar putchar :
#define getchar() getc(stdin)
#define putchar(c) putc((c), stdout)
- fscanf fprintf. scanf printf , , -, .
int fscanf(FILE *fp, char *format,...)
int fprintf(FILE *fp, char *format,...)
40
, string,stdio,stlib .
stdio fgets, getline, .
char *fgets(char *line, int maxline, FILE *fp)
fgets ( ) fp line, MAXLINE-1 . '\0'. fgets line, - NULL. ( getline , , .)
fputs ( ) .
int fputs(char *line, FILE *fp)
EOF, , .
gets puts fgets fputs. , stdin stdout, , gets '\n', a puts .
char *strcpy(s,ct) | ct s, '\0'; s |
char *strncpy(s,ct,n) | n ct s; s. '\0', ct n |
char *strcat(s,ct) | ct s; s |
char *strncat(s,ct,n) | n ct s, s '\0'; s |
char strcmp(cs,st) | cs ct; <0, cs<ct; 0, cs==ct; >0, cs>ct (I.B.: -, int) |
char strncmp(cs,ct) | n cs ct; <0, cs<ct, 0, cs==ct, >0, cs>ct (I.B.: int ) |
char *strchr(cs,c) | c cs , , NULL |
char *strrchr(cs,c) | c cs , , NULL |
size_t strspn(cs,ct) | cs, , ct |
size_t strcspn(cs,ct) | cs, , ct |
char *strpbrk(cs,ct) | cs , , ct, , , NULL |
char *strstr(cs, ct) | ct cs , , NULL |
size_t strlen(cs) | cs |
char * strerror(n) | , n |
char * strtok(s, ct) | strtok s , ct; . |
mem... ; - . s t void *; cs ct - const void *; n - size_t; c int, char.
void *memcpy(s,ct, n) | n ct s s |
void *memmove(s,ct,n) | , memcpy, "" . |
int memcmp(cs, ct, n) | n cs ct; , strcmp |
void *memchr(cs, c, n) | c cs , n c , NULL |
void *memset(s, c, n) | c n s s |
double strtod(const char *s, char **endp)
|
|
strtod s double, -; *endp ( endp NULL), HUGE_VAL , , , , 0; errno ERANGE.
long strtol(const char *s, char **endp, int base)
strtol s long, -; *endp ( endp NULL). base 2 36, , - base. base , 8, 10 16; , 0, , 0x 0X - . 10 base-1 . , 16, 0x 0X. LONG_MAX LONG_MIN ( ), a errno ERANGE.
unsigned long strtoul(const char *s, char **endp, int base)
strtoul , strtol, , unsigned long, - ULONG_MAX.
4