![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
suyy_hui
这个作者很懒,什么都没留下…
展开
-
switch
c语言语法灵活,程序常常自由度大,书写限制较少,但也有个别特例不那么完美,switch语句便是如此switch (语句表达式0){case 常量表达式1: 语句块1;break;case 常量表达式2: 语句块2;break;......default: 语句块n;}有两个问题决定了switch的不灵活:1. 语句表达式0限制严格,只能用布尔型,整型,字符型等基本数据类型;(原因是此处需要给...原创 2018-05-10 11:05:33 · 120 阅读 · 0 评论 -
浅谈c语言中浮点数的精度问题
众所周知,在生活中常常出现因精度而产生的各种问题,如流水线生产出现个别产品量的缺少等,这是无法避免的,因此常常规定,只要保证误差在一定范围内就算合格。在c语言中也会存在类似的问题如下面这段程序粗略计算一元二次方程的根(当然在严密的纯数学问题里不存在精度不够的问题,此处小编只是随便找个当例子)在此采用宏的方式,给定一个合理的误差范围,从而解决误差问题那么为什么会存在误差呢原来,浮点数存在精度问题,如...原创 2018-05-06 12:09:14 · 11758 阅读 · 0 评论 -
初识递归
为了缩小问题规模,我们常常在一些问题中使用递归的方法比如求n的阶乘,我们可以用递归算法解决 图1分别用0,1,4测试 图2结果如下: 图3主函数的调用,会有独立的栈帧,如下图左(以n=4为例),当主函数中调用(图2)Fac(4)时...原创 2018-06-10 23:19:22 · 115 阅读 · 0 评论 -
初识Linux中c&c++编译链接
在Linux操作系统下,一份普通的c|c++ 代码需要执行一般会经过以下几个步骤(以c为例);源文件源代码预编译:删除注释,处理预处理指令,头文件等(带“#”的部分),然后生成后缀为 ".i"的文件本次生成的main.i内部编译:语法分析,语义分析,汇总符号,代码优化,生成后缀名为".s"的文件;本次生成的main.s内部汇编:将汇编指令...原创 2018-11-27 18:57:28 · 184 阅读 · 0 评论 -
指针值的改变带来的问题
在今天做题时遇到了这样一个问题#include<stdio.h>int main(){ int arr[] = {1,2,3}; int *p = (int *)((int)&arr+1); printf("%08x\n",*p); return 0;}求打印结果。要做这道题要对数组arr的实际存储有所了解。假设ar...原创 2019-07-30 14:00:50 · 429 阅读 · 0 评论 -
c中动态申请内存的细节问题
c语言中动态内存常用到4个函数malloc 原型void * malloc(size_t size);用于动态开辟size大小的空间。calloc 原型void *calloc(size_t num,size_t size);用于对已开辟的数组元素初始化为0num为数组中元素个数,size为每个元素的字节长度realloc 原型void*realloc(...原创 2019-07-28 17:54:24 · 1217 阅读 · 0 评论 -
关于i++i,i++ = x的一点见解
关于i++i,曾在一本书上看过,后置++是一个类似原子操作的不可拆分的过程,系统将后置++看作一个常量来处理。由于当时忘记记录,今日又遇到了类似的问题,于是做一个简单的分析。关于i+++i:#include<stdio.h>int main(){ int i = 1; int a = i+++i; printf("%d",a); re...原创 2019-08-16 22:09:24 · 681 阅读 · 0 评论