c语言学习笔记
c语言学习笔记
Linstars随机数的使用
随机数rand
在使用之前需要引用<stdlib.h>
standard library标准库,并且在使用前需要先设置随机数种子。
srand(1);
设置种子为1int num = rand();
调用随机数
需注意C语言中的随机数,并不是随机的,而是根据种子设置的数值进行数学公式计算
公式为int num1=(31*num0+13)%100;
1 |
|
可以看到随机数是根据种子一直固定不变的
这样的随机数并不是我们想要要的,我们需要让他每次计算的数值都并不一样,所以我们需要让种子一直更换,能完成更换的数值就是时间time
1 | srand(time(NULL)); |
在用time之前也需要引用#include <time.h>
头文件
1 |
|
这样的结果就会根据时间不停变换值
随机数的范围
但是这样还不是随机数的最终形态,我们需要设定范围。默认的随机数最大范围为
1 |
随机数的范围公式为
1 | rand()%(m-n+1)+n//m=终数 n=初值 |
如果我们需要在1~100的范围内获取
1 | int num = rand()%100+1; |
无论取余的结果是多少最终结果除以100,值就是99,在加上1,就是1~100.
7~23的范围
1 | int num = rand()%17+7; |
8~49的范围
1 | int num = rand() % 42 + 8; |
下面就是最终结果
1 |
|
vs中使用scanf函数配置
1 | _CRT_SECURE_NO_WARNINGS |
char和int类型的相互转换
跳出循环体
运算符的优先级
break和continue的作用
break和continue都是用来控制循环结构的,主要作用是停止循环。
break和continue的区别
break用于跳出一个循环体或者完全结束一个循环,不仅可以结束其所在的循环,还可结束其外层循环。
注意:
- 只能在循环体内和switch语句体内使用break。
- 不管是哪种循环,一旦在循环体中遇到break,系统将完全结束循环,开始执行循环之后的代码。
- 当break出现在循环体中的switch语句体内时,起作用只是跳出该switch语句体,并不能终止循环体的执行。若想强行终止循环体的执行,可以在循环体中,但并不在switch语句中设置break语句,满足某种条件则跳出本层循环体。
continue语句的作用是跳过本次循环体中剩下尚未执行的语句,立即进行下一次的循环条件判定,可以理解为只是中止(跳过)本次循环,接着开始下一次循环。
注意:
- continue语句并没有使整个循环终止。
- continue 只能在循环语句中使用,即只能在 for、while 和 do…while 语句中使用。
goto语句
goto a;可以跳到a:
- a:表示自定义标签
- goto a表示跳到a:这个位置
指针
有意义的操作:
指针根证书进行加,减操作(每次移动N个步长)
指针跟指针进行减操作(间隔步长)
无意义的操作:
指针跟整数进行乘除操作
指针跟指针进行加、乘、除操作
原因:指针指向不明
1 | int arr[] = { 1,2,3,4,5,6,7,8,9,10 }; |
测试数组之间间隔多少步长
十进制(DEC)为20步长
不明指针
1 | //野指针:指向的空间未分配 |
运行结果
悬空指针
1 | //悬空指针:指针指向的空间已分配但是被释放了 |
运行结果:发现变量不是10了,而是被释放了
void 类型的指针
1 |
|
运行结果:
10
20
c=200,d=100
可以发现转换成功
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果