分析i=i<3?i++,0;
分析一道很难的c语言题
前置知识(副作用和序列点部分)
源码一
1234567891011121314151617181920#define _CRT_SECURE_NO_WARNINGS 1;#include <stdio.h>int fun(int i){ i = i < 3 ? i++ : 0; return i;}int main(void){ int i = 5, k, j; k = fun(i / 2); printf("%d,", k); k = fun(i = i / 2); printf("%d,", k); k = fun(i / 2); printf("%d\n", k); k = k < 3 ? k++ : 0; return 0;}
输出结果
看到这样的输出结果很让人迷惑,难道是因为底层实现中,i++的副作用先于赋值运算产生了吗?按照这个结论的话,执行代码i = i++;之后,i的值会保持不变,于是再去测试
测试源码二
123456 ...
推导一个等价无穷小
推导e^x-1~x
我们都知道的一个很重要的等价无穷小就是:
ex−1∼xe^x-1\sim x
ex−1∼x
在正式开始推导之前,我们首先要先明白几个定理,关于这几个定理我先给出,而省略其推导过程:
设有复合函数f[g(x)]f[g(x)]f[g(x)]满足
limx→x0g(x)=u0\lim_{x\rightarrow x_0}g(x) = u_0
x→x0limg(x)=u0
y=f(u)在点u0处连续y = f(u)\text{在点}u_0处连续
y=f(u)在点u0处连续
则limx→x0f[g(x)]=f(u0)=f[limx→x0g(x)]\text{则}\lim_{x\rightarrow x_0}f[g(x)]=f(u_0)=f[\lim_{x\rightarrow x_0}g(x)]
则x→x0limf[g(x)]=f(u0)=f[x→x0limg(x)]
基本初等函数归为六类:幂函数、指数函数、对数函数、三角函数、反三角函数、常数函数,基本初等函数在其定义域内都连续。
所有初等函数在其定义域内连续(由六种基本初等 ...
c语言问题
详解while((ch=getchar())!=‘\n’)
存在以下代码:
12345678#include<stdio.h>int main(){ char ch; while((ch=getchar())!='\n'){ putchar(ch); } return 0;}
当我在键盘输入:forever时并用回车结尾
显示屏上也会输出forever
这样的输出结果有一定原因:
getchar()函数时会从缓冲标准输入流stdin里面取一个字符,而不是直接从键盘输入。
(ch=getchar())!='\n'作为循环条件,即ch如果从stdin里面取到的字符不是回车,就继续从stdin再取。
C语言中定义int变量,默认值是多少?
区分变量的类型,有两种情况:
局部变量
局部变量在没有显示初始化时,其值C语言规范没做要求,可以是随机值
全局变量或静态局部变量
所有的全局变量,即定义在函数外的变量,默认值为0。
所有的静态局部变量,即定义在函数内部的(eg:static int a)形式的,默认值为0 ...
C语言学习笔记
c语言的发展、特点与程序结构
c语言的发展和特点
程序设计的基本方法
算法+数据结构=程序
算法的概念及其表示
c语言的基本结构
c语言程序基本结构
c语言的字符集、关键字和标识符
c语言的字符集中不包含$,汇编语言中可以使用$
c语言的关键字
scanf和printf不是关键字
标识符
基本数据类型、运算符和表达式
数据与数据类型
常量、变量和标准函数
常量
常量是程序执行期间其值保持不变的量
c语言中有以下几种类型的常量
整型常量
整型常量有三种形式:
十进制整数:如:11,-13,0,65535,…
八进制整数:由数字0开头
十六进制整数:由0x开头
整数又可分为:
长整型整数:用后缀L/l表示
无符号整数:用后缀U/u表示
无符号长整数:用后缀UL/ul表示
实型(浮点型)常量
字符常量
转义字符
要注意在转义字符中,用\ddd表示用八进制数字表示字符的ascii码,用\xhh表示用十六进制数字表示字符的ascii码,区别于表示数字时的0前缀和0x前缀
字符串常量
变量
整型变量
实型变量
标准函数
海伦公式求三角形的面积:
...
Git笔记
狂神说Git笔记
Git是目前世界上最先进的分布式版本控制系统。
配置Git
查看配置 git config -l
设置用户名与邮箱(用户标识,必要)
12git config --global user.name "alfa" #名称git config --global user.email 3343392239@qq.com #邮箱
搭建本地仓库
创建全新的仓库,需要用GIT管理的项目的根目录执行:
12# 在当前目录新建一个Git代码库$ git init
Git常用指令
查看文件状态
1234567#查看指定文件状态git status [filename] #查看所有文件状态git status# git add . 添加所有文件到暂存区# git commit -m "消息内容" 提交暂存区中的内容到本地仓库 -m 提交信息
添加SSH公钥
进入 C:\Users\Administrator.ssh 目录
执行命令
1ssh-keygen
将公钥信息public ke ...
狂神说springboot
SpringBoot集成Redis
导入依赖
1234<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency>
配置redis
123# 配置redisspring.redis.host=127.0.0.1spring.redis.port=6379
测试
1234567891011121314151617181920212223242526@SpringBootTestclass SpringbootRedis01ApplicationTests { @Autowired private RedisTemplate redisTemplate; @Test void contextLoads() { //redisTemplate ...
狂神说:异步、定时、邮件任务
异步任务
给hello方法添加@Async注解;
12345678910//告诉Spring这是一个异步方法@Asyncpublic void hello(){ try { Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("业务进行中....");}
要让这个注解生效,我们还需要在主程序上添加一个注解@EnableAsync ,开启异步注解功能;
123456789@EnableAsync //开启异步注解功能@SpringBootApplicationpublic class SpringbootTaskApplication { public static void main(String[] args) { SpringApplication.run(Spr ...
排序算法
冒泡排序图解
冒泡排序程序流程图
汇编语言代码实现
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748data segment count db 5 array label byte db 1,2,3,4,5data endscode segment assume ds:data,cs:code start: mov dx,data mov ds,dx mov ch,[count] ;设置数组长度 mov ah,0ffh ;设置退出标志位不要直接退出 next2: cmp ah,00h jz exit ...
汇编语言大作业
【疑问】DOS调用会修改AL寄存器的值?
代码部分
debug
图中可见,在上下两句代码指令之间,并没有对al进行任何操作,可是在经过09h号dos功能调用之后,al中的值却发生了改变。
解决:
应该是没有定义堆栈段的缘故
汇编语言大作业
程序片段
等待用户输入指令
跳转表法实现多分支程序
几个ASCII码
按键
ASCII码
回车
0DH
换行
0AH
空格
20H
ESC
1BH
$
24H
相关DOS命令
程序框架相关DOS命令
01H等待用户从键盘输入一个字符,回显,检测ctrl+break
07H等待用户从键盘输入一个字符,不回显,不检测ctrl+break
08H等待用户从键盘输入一个字符,不回显,检测ctrl+break
02H向屏幕输出一个字符
06H控制台输入输出
09H向屏幕输出一串字符
字符串末尾用$符号
0A从键盘输入一串字符
键盘输入缓冲区的定义规则
第四问相关DOS命令
2DH时间设置
2CH时间获取
相关BIOS命令
BIOS(Basic input/output system)固化在 R ...