什么是C语言
1.第一个C语言程序
2.数据类型
3.变量、常量
4.字符串+转义字符+注释
5.选择语句
6.循环语句
7.函数
8.数组
9.操作符
10.常见关键字
11.define 定义常量和宏
12.指针
13.结构体
在上一篇文章中我们将字符串和转义字符熟悉了,这一篇文章我们从选择语句开始。
选择语句给我们很多选择,当然每个选择都有不同的结果。当coding==1的时候,就会从if语句进去,而不从else进去,反之亦然。
#include
int main()
{
int coding = 0;
printf("你会去敲代码吗?(选择1 or 0):>");
scanf("%d", &coding);
if(coding == 1)
{
prinf("坚持,你会有好offer\n");
}
else
{
printf("放弃,回家卖红薯\n");
}
return 0;
}
有些事必须一直做,比如我日复一日的讲课,比如大家,日复一日的学习。
首先我们进入while语句,由于初始化line==0,我们
//while循环的实例
#include
int main()
{
printf("努力学习\n");
int line = 0;
while(line<=20000)
{
line++;
printf("我要继续努力敲代码\n");
}
if(line>20000)
printf("好offer\n");
return 0;
}
6C语言中如何实现循环呢?
while语句-讲解
for语句(后期讲)
do ... while语句(后期讲)
其实我们在写代码的时候一直在使用函数,main函数就是一个函数,还有printf,scanf,strlen等等。这些叫做库函数,是可以直接用的函数,但是在写代码的时候用的最多的还是自定义函数,自己定义函数名,返回类型,参数。
像下面这段代码,我们定义一个加法函数,将两个数相加的值返回给sum,在main函数里面的num1,num2是实参,在Add加法函数里面x,y是形参,int是x和y的类型,z也是整形,所以Add前面我们也要加上int这个返回类型。
#include
int main()
{
int num1 = 0;
int num2 = 0;
int sum = 0;
printf("输入两个操作数:>");
scanf("%d %d", &num1, &num2);
sum = num1 + num2;
printf("sum = %d\n", sum);
return 0;
}
上述代码,写成函数如下:
#include
int Add(int x, int y)
{
int z = x+y;
return z;
}
int main()
{
int num1 = 0;
int num2 = 0;
int sum = 0;
printf("输入两个操作数:>");
scanf("%d %d", &num1, &num2);
sum = Add(num1, num2);
printf("sum = %d\n", sum);
return 0;
}
函数的特点就是简化代码,代码复用。
要存储1-10的数字,怎么存储?
C语言中给了数组的定义:一组相同类型元素的集合
数组的作用就是存放一组相同类型的数,[]里面是数组的大小,10表示这个数组可以存放10个元素,arr是数组名,int是表示这个数组是整形数组。
int arr[10] = {1,2,3,4,5,6,7,8,9,10};//定义一个整形数组,最多放10个元素
C语言规定:数组的每个元素都有一个下标,下标是从0开始的。
数组可以通过下标来访问的。
比如:
int arr[10] = {0};
//如果数组10个元素,下标的范围是0-9
第一个元素的下标是0,第二个元素的下标为1,以此类推。
#include
int main()
{
int i = 0;
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
for(i=0; i<10; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
return 0;
使用for循环产生0-9的下标,就可以访问这10个元素了。
先给大家简单介绍一下,后面再详细讲。
+ - * / %
int r = 7/2;
float r = 7/2;
对于除法来说,除号的两端都是整数的话,执行的是整数除法.
除号的两端只要有一个数是小数,就执行小数除法.
取模操作符得到的是整除后的余数,%操作符左右两边只能是整数。
>> <<
移位操作符移动的是二进制的位,这个后期再讲。
& | ^
位操作符移动的也是二进制的位,后面再讲。
= += -= *= /= &= ^= |= >>= <<=
=是赋值操作符。其他的叫做复合赋值符。
=就是单纯的给一个变量赋值。复合赋值符的作用在下面的代码可以展示出来。
int main()
{
int a = 10;
a = 20;//赋值
a = 100;//赋值
a = a + 3; //1
a += 3;//复合赋值 //2
a = a - 5;
a -= 5;
a = a * 10;
a *= 10;
a = a / 3;
a /= 3;
return 0;
}
像3+5和4/2这种叫双目操作符,因为有两个操作数。单目操作符就是只有一个操作数。
在C语言中,0表示假,非0表示真。&和*我们讲指针时再讲。·~后期讲。
!就可以把真假互换。
sizeof可以计算类型大小。
int main()
{
int a = 10;
printf("%d\n", sizeof(a)); //4个字节
printf("%d\n", sizeof a); //4个字节
printf("%d\n", sizeof(int));//4个字节
return 0;
}
++和--很类似,前置++就是先将a+1,再将a+1的值赋给b。
int main()
{
int a = 10;
int b = ++a;
//前置++
//计算口诀:前+1,后使用
//a=a+1, b=a
printf("a=%d b=%d\n", a, b);// 11 11
return 0;
}
后置++就是先将a的值赋给b,再将a+1。
int main()
{
int b = a++;
//后置++
//计算口诀:先使用,后+1
printf("a=%d b=%d\n", a, b);//11 10
return 0;
}
()可以强制类型转换。我们将3.14赋给a的时候翻译器会进行报错,因为a的类型是int,但是当我们将3.14强制转换类型成int就没问题。
int main()
{
int a = (int)3.14;
printf("%d\n", a);
return 0;
}
>
>=
<
<=
!= 用于测试“不相等”
== 用于测试“相等”
一个=是赋值,两个==是判断相等。>=是大于等于,<=是小于等于。
&& 逻辑与
|| 逻辑或
&&相当于并且,||相当于或者。下面有张图可以帮助大家理解。
exp1 ? exp2 : exp3
在下面代码中这两种方法求得m的值都是3。
int main()
{
int a = 2;
int b = 3;
int m = 0;
if (a > b)
m = a;
else
m = b;
m = ((a > b) ? (a) : (b));
printf("%d", m);
return 0;
}
由逗号隔开的表达式就是逗号表达式。
exp1, exp2, exp3, …expN
逗号表达式从左到右依次计算,但是整个表达式的结果是最后一个表达式的结果。所以d的结果是-1.
[] () . ->
. 和->是结构访问操作符,后面学结构体的时候再讲。[]和()是下标引用操作符,我们以及很熟悉了。
今天的分享到这里就结束啦!感谢大家的阅读,下期我们将结束初识C语言,让我们下期再见。