C言語基礎学習
31809 ワード
( , )
.c --> ( .obj)
, exe
//
scanf("%d", &a);
c main
= +
:
: 、 、
: ,
N-S ( ) : 、
: 、 、
;
1、 ,
2、
3、
:
1、
2、 ( )
3、
4、
:
1、 ( )
: 12 2.3 'a'( )
2、 :
#define
#define NAME "sjk"
, ,
: +1
:0 1
short int: 1
int : 2
long int : 4
(signed)( )
(unsigned)
u U , unsigned
l L , ( , )
: 123u 123l
1、 0.345 .345 0.0 .0 0.
2、 : e , .3e3 3e3 3.e3
3、 double
f F float , l L long double
float: 4byte 7
double:8byte 15~16
long double 10byte 15~16
,
:
( )
\ddd 1~3 (ascii ) '\101' 'A'
\xhh 1~2 (ascii ) '\x41' 'A'
unsigned char c1 = 'a'; //
char c2='\101';
ascii
:
'\0' , \0 ( )
'a' , "a"
,
:
,
float double
short int
:
%
:
(double)a
(int)(x+y)
-i++ <==> -(i++)
1、 ,
2、 , ,
3、 , ( )
4、char int long
: -> 1( ), 1, 0
-> ( )
1, 2 ... i
: ,
a = (1+3,2+8); //a=10
int a=1;
printf("%d", a=a+1, a=a+2); // ,
putchar:
getchar: ,
printf:
% - 0 m.n l/h
%:
-:
0: 0
m.n:
l/h:
:
d:
o:
x:
u:
c:
s:
e:
f:
g: e f
l:
%ld, %lx , %lo, %lu
%lf
h: short
%hd, %hx, %ho, %hu
m: ( )
n:
:1、 printf , , ,
2、
scanf:
:
1、 : tab
2、 ( ) scanf("%2d3d", &a, &b); // 12345 ==> a=12, b=345
3、 ( ) scanf("%2d,3d", &a, &b); // 12,345 ==> a=12, b=345
: u , unsigned d,o,x
%c , ,
: > > >
:
:
:ascii
: (1) (0)
--
--
? :
、 、
%f 7 6
%lf 16 6
:
switch(e) e 、 、
:
1、goto + if
:goto
: , ,
goto ,
2、while
3、do while
4、for
// a
char c;
while((c=getchar()) != 'a');
: ( : 、 、 、 )
: 、
int a[10];
sizeof:
、
c (static) (extern) ,
int a[2]={1,2}; //
int a[3]={1} ; // 0
int a[3]; //
int a[] = {1,2,3}; // 3
: static , 0
:
,
:
int x[2][3] = {1,2,3,4,5,6}; //
int x[2][3] = {{1,2,3},{4,5,6}}; //
//
static int x[2][3]={1,2,3} // , 0
static int x[2][3]={{1,2},{4}} // , 0
// ,
static int x[][3] = {1,2,3,4,5,6};
:
,
int a[2] <==> char a[2]
'\0' null, ascii 0
c , 、 '\0'(null), null
:
static char c[4] = {"abc"};
char c[4] = {"abc"};
char c[4] = "abc";
char c[] = "abc";
>= +1
char c[3] = "abc"; // '\0'
:"%c"
( ) : %s
char a[10];
scanf("%s", a); printf("%s", a); // , ,
%s , , '\0'
%s
&a[0][0] <==> a[0]
:
gets( ) // ( ), ,
puts( / ) // ( '\0' ) , ==> printf("%s
", str);
puts(gets());
strcpy( 1, / 2); //
:1、
2、 '\0'
3、
char str[6], str2[6];
str="china";(X) str ,
str[0]='c';(Y) //
str=str2; (x); //strcpy(str, str2)
strcat( 1, / 2)); 2 1 , 1
1 \0
strcmp( 1/ 1, 2/ 2); // ascii
1> 2
1= 2 0
1< 2
strlen( / ); // , ('\0')
strlwr( ) //
strupr( ) //
:
return , ,
, int
,
, main void max(int x,int y);
(.h) , include
-->
, , , ,
,
int max(int a[], int n){} max(a, 10);
, ,
int max(int a[][5]){} int a[4][5]; max(a);
:
: / /
: ,
: ,
:
:
auto( )
static ,
( ), ,
register
,
extern
extern
static
:
!n = n*!(n-1)
x^n
fn1->fn2->fn1
, (8bit=1byte)
: ,
:
1、
2、 p, a , p a
:
p , a , p a
: * // int *p1, *p2;
, ,
&
int a,*p;
p=&a;
:
NULL /0, p=null/p=0;
& //
* //
?=*p //
*p=? //
:
int a=2,*p=&a,*q=&a;
// 2 2
printf("%d %d
", *p++ , *(q++) );
p=&a, q=&a;
printf("%d %d
", *p, (*q)++ /* a++ */); //
1、 : e.g.: a-y+z
2、 : e.g.:a=b=c=2;
3、 ,
4、 , , *p++ <==> *(q++)
:http://baike.baidu.com/view/1516130.htm?fr=aladdin
// x,y
void swap(int *x, int *y)
{
int *t;
t=x;
x=y;
y=t;
}
void swap(int *x, int *y)
{
int *t; //t ,
*t=*x;
*x=*y;
*y=*t;
}
//right
void swap(int *x, int *y)
{
int t;
t=*x;
*x=*y;
*y=t;
}
( )
eg: int a[10],*p; p=a <==> p=&a[0];
: p=&a[i]; // *p == a[i];
, + :a a+1 a+2
:p+i, a+i
: a[i]( )、*(p+i)( )、*(a+i)( )
a( ) , p
: *(p+_i)
:
:
:
( '\0' )