五、注释
1.注释的好处
1.代码中有不需要的代码可以进行直接删除,也可以注释掉
2.代码中有些代码比较难懂,可以加一下注释
2.注释风格
注释有两种注释风格
一种是c语言注释风格 /*xxxxx*/
缺陷:不能嵌套注释
另一种是c++注释风格 //xxxxx
可以注释一行也可以注释多行
六、选择语句
人生处处面临选择,c语言中也一样拥有选择语句,可以通过一些选择来达成一些需求。选择语句在此处仅仅简单介绍一下if else选择语句的基本应用,后续文章将专门详细介绍。
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() { int input = 0; printf("请问你是否要坚持好好学习吗?(1/0)"); scanf("%d", &input); if (input == 1) { printf("好offer\n"); } else if (input == 0) { printf("回家卖红薯"); } else { printf("选错了"); } return 0; }
这就是一个最简单的选择语句了,其中if后面的括号是判断是否成立的,如果成立则执行大括号里面的语句,如果不成立就依次往下判断,知道判断完毕。
七、循环语句
c语言中常用的循环语句一共有三种
while循环
do while循环
for循环
这三种循环我们暂时只浅浅的了解一下while循环,在后续的文章中,我将详细介绍这三种循环
int main() { int line = 0; while (line <= 20000) { printf("敲代码: %d\n", line); line++; } if (line > 20000) printf("好offer\n"); else printf("好好学习,天天编程\n"); return 0; }
这是一个最简单的while循环语句,进入循环语句以后,先判断line是否小于20000,如果小于,这执行完大括号的语句后重新判断一次条件,就这样一直重复下去,直到打破循环。
八、函数
1.函数的引入
我们首先看一段代码
#include<stdio.h> int main() { int a = 0; int b = 0; scanf("%d %d", &a, &b); int c = a + b; printf("%d", c); return 0; }
这段代码相信很容易理解吧,就是算出输入两个数的和,那么我们思考一下,如果一个超大的工程里面,需要重复性的用到某一段极其复杂的算法很多次,那么我们怎么办呢?,就这样一直写下去吗。那太烦了,而且万一出错了,很难寻找到这些错误。那我们不得不引入一个概念——函数。
函数这个相信大家很不陌生了,尤其是在大学学习高数时候,各种函数极限,函数微分,求导,积分各种运算。在c语言中同样也有函数,那么c语言的函数跟高数的函数有区别吗。其实有但不是很大,因为我们些代码几乎不需要对函数求导,积分运算的,我们c语言中所接触到的函数仅仅只是在多元函数上的一个应用。
我们在数学中函数是这样的y=f(x),通俗的来说对于任意一个x,总有唯一确定的y与之对应。这句话在我们c语言中是如何应用的呢?
这里给一个代码
int f(int x, int y) { return (a + b); } #include<stdio.h> int main() { int a = 0; int b = 0; scanf("%d %d", &a, &b); int c = f(a, b); printf("%d", c); return 0; }
这段代码中,我们输入了a与b两个整数,然后我们使用一个二元函数f(x,y),将他带入参数a,b,便可很快的算出最终的答案了。而且即便是以后需要多次使用这个函数,也是直接调用即可。
2.函数如何写
其实我们可以继续看上面的代码。
数学中函数由四部分组成,是定义域,值域,对应法则。在c语言中函数由四部分组成,函数名,参数,返回类型,函数的主体。这两者之前由异曲同工之妙,读者可以自行体会
其中函数名由自己决定,参数以及参数的类型由所输入的数据决定,主体就是具体的功能,下面的代码,就是一个典型的加法函数。
#include <stdio.h> 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.数组的定义
数组的定义:一组相同类型元素的集合。
int arr[10] = {1,2,3,4,5,6,7,8,9,10};//定义一个整形数组,最多放10个元素 int arr[10] = { 1,2,3,4,5 };//不完全初始化,剩余默认为0 char arr[5] = { 'a','b','c' };//不完全初始化,剩余默认为\0
2.数组的下标
数组的下标与从0开始的,这一点与中学的数列很像,数列的首元素一般也是a0开始的
int a[10] | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
下标 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
这就是数组的下标了
3.数组的使用
这里先简单介绍一下数组的使用,后续章节更深入的探究
#include<stdio.h> int main() { int arr1[10] = { 1,2,3,4,5,6,7,8,9,10 }; int i = 0; while (i < 10) { printf("%d ", arr1[i]); i = i + 1; } return 0; }
输出结果为
十、操作符
这里仅仅简单介绍一下,不会太过于深入,后面将详细讲解
1.算数操作符
+ - * / %
算数操作符一共有这五种,加减乘都很简单,这里主要讲解一下/ 和%这两种
(1)/ 和 %的基本使用
/ 代表的是两个数相除后的商,也就是整数部分
%代表的是两个数相除后的模,也就是余数部分
#include<stdio.h> int main() { int a = 5 / 4; int b = 5 % 4; printf("%d %d", a, b); return 0; }
输出结果为
(2)几个经典的错误,标准的零分
①对/理解不到位
如何输出结果是一个正常的小数呢?
#include<stdio.h> int main() { float a = 5 / 4; int b = 5 % 4; printf("%f %d", a, b); return 0; }
这段代码运行以后
是这种结果,说明想要输出一段小数问题出在右边
正确的做法是
这样就成功了
这里总结一下/的处理小数中的问题
1.除号两端如果都是整数,则执行的是整数除法
2.除号两段至少有一个是浮点数,才能执行浮点数的除法
%d - 十进制的整型
%c - 字符
%s - 字符串
%f - 打印float类型的浮点数
%lf - 打印double类型的浮点数
②对%理解不到位
#include<stdio.h> int main() { float a = 5.0 / 4.0; int b = 5.0 % 4.0; printf("%f %d", a, b); return 0; }
这段代码运行后会发生什么呢?答案是报错了。为什么报错?因为%运算不能对浮点数使用
% 取模(取余),%操作的两个操作数必须都是整数
2.移位操作符
>> <<
与二进制有关,暂时不讲
3.位操作符
& ^ |
与二进制有关,暂时不讲
4.赋值操作符
= += -= *= /= %= &= ^= |= >>= <<=
#include<stdio.h> int main() { int a = 0;//初始化,创建变量的同时给一个值,这叫初始化 a = 20;//赋值 a = a + 5; a += 5;//与前一行等价 a = a * 10; a *= 10;//与前一行等价 return 0; }
a+=5与a=a+5是等价的,同理可以推出很多的等价式
5.单目操作符
! 逻辑反操作
- 负值
+ 正值
& 取地址
sizeof 操作数的类型长度(以字节为单位)
~ 对一个数的二进制按位取反
-- 前置、后置--
++ 前置、后置++
* 间接访问操作符(解引用操作符)
(类型) 强制类型转换
这就是所有的单目操作符
(1) ! 操作符
!主要是取反的作用
这里首先讲解一个小知识点
c语言中,0是假,非零就是真
int main() { int flag = 5; //如果flag为真,就打印hehe if (flag) { printf("hehe\n"); } if (!flag) { printf("haha\n"); } return 0; }
这段代码的运行结果为
(2)+ -
关于这两个操作符,-有一个作用就是取相反数,+基本上就是一种可有可无的状态
(3)&,*,~
暂时不讲
(4)sizeof
这里着重强调两点
sizeof是操作符,用于计算变量所占内存空间的大小,单位是字节
strlen是库函数,是计算字符串的长度的,统计的是字符串中\0之前出现的字符个数
#include<stdio.h> int main() { int a = 10; float f = 5.5f; printf("%d\n", sizeof(a)); printf("%d\n", sizeof(int)); printf("%d\n", sizeof(f)); printf("%d\n", sizeof(float)); return 0; }
对于这段程序运行结果为
(5)++ --
int main() { int a = 100; int b = a++;//后置++,先使用,后++ int b=a,a=a+1; int b = ++a;//前置++,先++,后使用 a=a+1,b=a; int b = a--; int b = a,a=a-1; int b = --a; a=a-1,b=a; printf("a=%d b=%d\n", a, b); return 0; }
对于这段代码中主要区分前置++,与后置++的区别
即前置是先++,后引用,等价于a=a+1,b=a
后置++是先引用后++,等价于b=a,a=a+1
一个经典的错误标准的零分
#include<stdio.h> int main() { int b = 0; int a = 4; b = (a++); printf("%d", b); return 0; }
给这个++带了一个括号,会先在括号内++完毕之后然后再将a赋值给b吗?
如果是按照上面的逻辑的话,答案是5,如果不是则为4
那么我们运行一下试试
答案是4,这说明于此时的括号形如虚设。这一点要注意一下,这是一个经典的错误,标准的零分
至于--则与++类似,可以对比去学习。
(6)(类型)
这个操作意思是强制类型转换,如下面代码一样,将3.14强制类型转化为int类型,就变成了3
#include<stdio.h> int main() { int a = (int)3.14; printf("%d",a); return 0; }
6.关系操作符
> >= < <= != ==
这几个都是用于判断的,如果判断为真,则返回1,否则返回0
一个经典的错误,标准的零分
#include<stdio.h> int main() { int a = 3; if (a = 5) { printf("hehe\n"); } return 0; }
这段代码中有一个错误,就是==和=号用错了,=是赋值,他这个意思是将5赋给a,那么这个式子结果为5,为真,打印hehe。
7.逻辑操作符
&& ||
这两个操作符的区别就是
a&&b,两边同时为真,结果为真
a||b,两边同时为假,结果为假
一个经典的错误标准的零分
#include<stdio.h> int main() { int age = 20; if (18 < age < 60) { printf("成年"); } }
这段代码中,if语句的圆括号内,age先大于18,返回1,然后1小于60,满足,输出成年,答案正确,但是逻辑完全不符合我们的预期,一旦换一个值就会出现错误,比如age=17时,17<18,不满足结果,输出为0,0小于60,输出为1,最终打印成年。这下错误就暴露出来了
那么该如何解决呢,应该这样写
#include<stdio.h> int main() { int age = 20; if (age>18&&age<60) { printf("成年"); } }
这样就是一个正确的代码了。
8.条件操作符
exp1 ? exp2 :exp3
这个操作符的意思是如果exp1为真,则输出exp2,否则输出exp3
9.逗号表达式
exp1,exp2,……,expn;
暂时不讲
10下标引用,函数调用,结构成员
[] () . ->
(1)[]
这是数组下标引用操作符,先看一段代码
int main() { int arr[10] = {1,2,3,4,5,6,7,8,9,0}; printf("%d\n", arr[4]);//[]下标引用操作符 return 0; }
这就是下标引用操作符的用法
(2)()
这是函数调用操作符,我们先看一段代码
int main() { int num1 = 0; int num2 = 0; int sum = 0; //输入 scanf("%d %d", &num1, &num2); //求和 sum = Add(num1, num2);//()函数调用操作符 //输出 printf("%d\n", sum); return 0; }
这就是函数调用操作符的基本用法了
(3). ->
结构体成员操作符,暂时不讲
总结
本节主要讲述了,注释,选择,循环,函数,数组,以及操作符的简单基本使用,暂时只需了解最基本的概念即可。希望能对读者有很大的帮助。不要忘记留下你免费的赞赞和关注哦。
本站未完,欲知后事,请看下节