整个程序只有一个main函数,且必须有
表达式,语句
表达式; <=> 语句
int a;
a = a + 1;
1)空语句
;
2)表达式语句:
a = a + 1;
3) 复合语句
{
}
4)函数调用语句
f1(a);
5)控制语句
if..else..
switch
for()
while()
do..while
continue
break
return
goto //C语言中一般不推荐使用
eg1:
各种类型的变量:(int,char,float,double)
int main()
{
int number;
int number1 = 1;
char ch,ch1 = 'a';
float f = 3.14f;
double f2 = 3.14;
short h1 = 2;
long h2 = 4;
unsigned int ud = 23;
}
eg2:
输入输出:
int main()
{
int number;
int number1 = 1;
short h1 = 2;
long n2 = 4;
unsigned int ud = 23;
char ch,ch1 = 'a';
float f = 3.14f;
double f2 = 3.14;
number = 5;
ch = 'c';
printf("number = %d\n", number);
printf("short = %hd\n", h1); //n2->ld% ud->%lu
printf("ch = %c,ch = %d\n", ch,ch);
printf("f = %f,f = %.2f\n", f,f);
printf("f2 = %lf\n",f2);
return 0;
}
eg3:
函数: 返回值类型 函数名(参数列表){}
函数调用(形参、实参)
int max(int a,int b)
{
if(a >= b)
return a;
return b;
}
eg4:(一维数组、二维数组)下标
数组:
1)一维数组的初始化:
int a[10] = {1,2,3,4,5,6,7,8,9,0};
int a[10] = {1,2} //后面的默认为0
int a[] = {1,2,3,4,5,6,7,8,9,0};
int a[10] = {0};
2)二维数组(行列,C 语言中依行为主序)初始化
int num[3][4] = {1,2,3,4,5,6,7,8,9,0,11,12};
int num[3][4] = {{1,2,3,4},{5,6,7,8},{9,0,11,12}};
int num[3][4] = {{1},{2,3},{4}};
int num[][4] = {1,2,3,4,5,6,7,8}; //系统会自动计算第一维的长度
3)字符数组
char str[10] = {'h','e','l','l','o'} //后面的默认为'\0'
char str[10] = {"hello"};
char str[] = {"hello"};
补充:
字符串 拷贝(strcpy/strncpy)
连接 (strcat)
计算长度(strlen)
比较 (strcmp)
大小写转换 strlwr(大写转小写)/strupr(小写转大写)
int main()
{
char str[10] = {'h','e','l','l','o'} ;
printf("str = %s\n", str);
scanf("%s", str); //不需要再取地址了,str本身就是一个地址。%s 遇到空白字符就会停止接收
printf("%s\n", str);
gets(str);
puts(str);
}
eg5:
指针:(一级指针、二级指针)
int main()
{
int a = 10;
int *p = &a;
int *q = p;
*p = *p + 1; //等价于a = a+1;
*q = 20; //等价于*p = 20; 也等价于a = 20;
printf("a = %d, *p = %d,*q = %d\n", a, *p, *q);
}
eg6:
结构体:
struct
typedef
1)
struct student{
char name[20];
int age;
};
struct student stu1;
stu1.name...
stu1.age = 20;
2)
struct student{
char name[20];
int age;
}stu1;
struct student *p = &stu1;
p->name...
p->age = 10;
3)
typedef struct student{
char name[20];
int age;
}stu; //stu 是 struct student 的别名
stu stu1;
stu *p = &stu1;