![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c语言和数据结构
jet_wong
岁月如冰河,热望如鲸歌。
展开
-
C语言中的所有运算符用法及总结
转载自 https://blog.csdn.net/sigma_inf/article/details/66473222?locationNum=2&fps=11 算数操作符2 逻辑操作符3 按位操作符4 赋值运算操作符5 其他的操作符其他运算符中的三目运算符“condition?exp1:exp2 ”是C语言中唯一的三目运算符可以用if——else语句来描述。总结:1 左移运算符左移...转载 2018-04-09 11:03:33 · 4406 阅读 · 0 评论 -
简单分析C语言中指针数组与数组指针的区别
转载自 http://www.jb51.net/article/75149.htm首先来分别看一下,指针数组的一个小例子:#include <stdio.h> #include <string.h> int lookup_keyword(const char*key, const char* table[], const int size) { int re...转载 2018-04-11 16:07:59 · 263 阅读 · 0 评论 -
浅谈浮点数的存储机制
在学习c语言的浮点数,知道了单精度float占4个字节32位,双精度double占8个字节64位,同时了解了一下float和double的二进制值具体表示时的位数分配,如下:单精度: 第1位符号位,表示该数的正负,0位正,1为负。 接下来的8位表示该浮点数的指数位。 最后的23位表示尾数部分。 双精度: 第1位符号位,表示该数的正负,0位正,1为负。 接下来的11位表示该浮点数...原创 2018-04-04 15:05:08 · 443 阅读 · 0 评论 -
c语言的隐式(自动)数据类型转换
转载自 https://blog.csdn.net/u010815257/article/details/50178499一.算术运算符中的转换规则:double ←── float 高↑long↑unsigned↑int ←── char,short 低注意:图中横向箭头表示必须的转换,如两个float型数参加运算,虽然它们类型相同,但仍要先转成double型再进行运算,结果亦为double型...转载 2018-04-17 11:29:15 · 286 阅读 · 0 评论 -
C语言 #define 与 const的区别
转载自 https://blog.csdn.net/yi_ming_he/article/details/70405364这个区别用从几个角度来说:角度1: 就定义常量说的话: const 定义的常数是变量 也带类型, #define 定义的只是个常数 不带类型。角度2: 就起作用的阶段而言: define是在编译的预处理阶段起作用,而const是在 编译、运行的时候起作用。角度3: 就起作用的方...转载 2018-04-04 15:59:22 · 439 阅读 · 0 评论 -
C语言的存储类型和关键字static
转载自 http://www.cnblogs.com/litifeng/p/7821095.html1、C语言中每个变量都有3个性质:存储期限、作用域、链接。1)存储期限:变量的存储期限决定了为变量预留的内存被释放的时间。共2种,自动存储期限(auto),静态存储期限(static),自动存储(auto)的变量在所属块被执行时获得内存单元,并在块终止时释放内存单元,自动的获得或释放内存,故名aut...转载 2018-04-04 16:58:57 · 546 阅读 · 0 评论 -
C语言判断闰年标准的依据
C语言判断闰年的方法为:if((year/4==0&&year/100!=0)||(year/400==0)){ printf("该年是闰年");}else{ printf("该年不是闰年");}判断标准为:1. 能整除4且不能整除100.2. 能整除400为什么会有这样的判断标准呢?分析如下:1、产生闰年原因:地球绕太阳运行周期为365天5小时48分46秒(合...原创 2018-04-17 15:00:08 · 17758 阅读 · 6 评论 -
C语言寄存器变量register
转载自 https://blog.csdn.net/mouse_ts/article/details/45097603用register声明的变量是寄存器变量,是存放在CPU的寄存器里的。而我们平时声明的变量是存放在内存中的。虽说内存的速度已经很快了,不过跟寄存器比起来还是差得远。寄存器变量和普通变量比起来速度上的差异很大,毕竟CPU的速度远远大于内存的速度。寄存器有这么两个特点,一个是运算速度快...转载 2018-04-04 18:10:12 · 3285 阅读 · 0 评论 -
计算机中内存、cache和寄存器之间的关系及区别
转载自 https://blog.csdn.net/u014074954/article/details/471019571. 寄存器是中央处理器内的组成部份。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,包含的寄存器有累加器(ACC)。2. 内存包含的范围非常广,...转载 2018-04-04 18:19:49 · 444 阅读 · 0 评论 -
关于RAM与ROM的区别与理解
转载自 https://blog.csdn.net/szupjz/article/details/51842242随机存取存储器(random access memory,RAM)又称作“随机存储器”,是与CPU直接交换数据的内部存储器,也叫主存(内存)。它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介。当电源关闭时RAM不能保留数据。如果需要保存数据,就必须...转载 2018-04-04 18:29:31 · 369 阅读 · 0 评论 -
指针函数与函数指针的区别
指针函数:是什么:指带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针int *f(x,y);指针函数应用于:C 语言不允许返回一个完整的数组作为函数的参数,当需要返回一个数组的时候,应该返回一个指向该数组的指针,同时在主调用函数中用一个指针变量来接收。函数指针:是什么:是指向函数的指针变量,即本质是一个指针变量。int (*f) (int x); /* 声明一个函数指针 */f=fu...原创 2018-04-13 15:57:13 · 156 阅读 · 0 评论 -
c语言字符数组与字符串的使用详解
转载自 https://blog.csdn.net/smf0504/article/details/516735291、字符数组的定义与初始化字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素。char str[10]={ 'I',' ','a','m',' ',‘h','a','p','p','y'};即把10个字符分别赋给str[0]到str[9]10个元素如果花括号中提供的字符个...转载 2018-04-13 16:53:00 · 15067 阅读 · 2 评论 -
typedef和#define究竟有什么区别?
转载自 https://blog.csdn.net/pwiling/article/details/477066451) #define是预处理指令,不会参与编译过程,只是在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错。例如: #define PI 3.1415926 程序中的:area=PI*r*r 会替换为3.141...转载 2018-04-13 18:54:11 · 445 阅读 · 0 评论 -
C语言中,指针p[i]为什么等同于数组p[i]?
在学习c语言指针的过程中,看到这样一段代码:#include <stdio.h> /* 函数声明 */double getAverage(int *arr, int size); int main (){ /* 带有 5 个元素的整型数组 */ int balance[5] = {1000, 2, 3, 17, 50}; double avg; ...原创 2018-04-11 16:02:33 · 6841 阅读 · 4 评论 -
main函数一定要有返回值吗?
转载自 https://blog.csdn.net/yuhengyue/article/details/78626195我们说下C99规定,main是需要有返回值的。其中有2种形式是允许的,一种带参数,一种不带参数。int main(){}int main(int argc,char *argv[]){}其中argv可以写成char **argv这种形式。如果你忘记最后return了,有些...转载 2018-04-17 10:09:05 · 6016 阅读 · 0 评论 -
C语言之C语言判断和循环
转载自 https://blog.csdn.net/zhouzhiwengang/article/details/51319625本章的学习目的:1、什么是判断2、判断方式和种类 3、三目运算判断4、什么是循环5、循环种类6、break、continue和goto 区别1、什么是判断判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可...转载 2018-04-09 11:26:03 · 6078 阅读 · 0 评论 -
C语言scanf的用法
scanf是C语言中的标准输入函数。函数原型:int scanf( const char *format, ... );其调用格式为: scanf("<格式化字符串>",<地址表>);举例如下:scanf("%d%d", &a, &b); // 接收用户从键盘输入的2个整数,分别赋值给变量a函数的返回值为 被成功读入的数据项个数。如果a和b都被成功读入,那么...原创 2018-04-09 14:16:54 · 1910 阅读 · 0 评论 -
C语言函数声明
转载自 https://blog.csdn.net/21aspnet/article/details/174326C语言代码由上到下依次执行,原则上函数定义要出现在函数调用之前,否则就会报错。但在实际开发中,经常会在函数定义之前使用它们,这个时候就需要提前声明。所谓声明(Declaration),就是告诉编译器我要使用这个函数,你现在没有找到它的定义不要紧,请不要报错,稍后我会把定义补上。函数声明...转载 2018-04-09 14:55:32 · 902 阅读 · 1 评论 -
c语言传值调用与引用调用
转载自 https://blog.csdn.net/ly0303521/article/details/44310125调用:把实参的值赋给形参1、传值调用 先把实参的值复制一份,把复制后的实参的副本赋给形参,之后形参如何变化与实参无关。2、引用调用 把实参(int a)的地址(&a)赋给形参(指针变量,比如*b,这时b=&a,即b指向变量a),如果*b(也即a对应的内存空间)发生...转载 2018-04-09 15:01:16 · 5387 阅读 · 0 评论 -
c语言局部变量默认初始值
C语言中,定义局部变量时如果未初始化,则值是随机的,这是为什么呢?定义局部变量,其实就是在栈中通过移动栈指针来给程序提供一个内存空间和这个局部变量名绑定。因为这段内存空间在栈上,而栈内存是反复使用的(脏的,上次用完没清零的),所以说使用栈来实现的局部变量定义时如果不显式初始化,值就是脏的。c语言中只有局部变量在未赋初值时,才是随机数,全局变量和静态变量未赋初值时编译器会自动将其初始化为0。局部变量...原创 2018-04-09 15:29:48 · 16617 阅读 · 1 评论 -
c语言srand函数
srand((unsigned)time(NULL))是初始化随机函数种子:1、是拿当前系统时间作为种子,由于时间是变化的,种子变化,可以产生不相同的随机数。计算机中的随机数实际上都不是真正的随机数,如果两次给的种子一样,是会生成同样的随机序列的。 所以,一般都会以当前的时间作为种子来生成随机数,这样更加的随机。2、使用时,参数可以是unsigned型的任意数据,比如srand(10);3、如果不...原创 2018-04-09 16:09:35 · 3570 阅读 · 0 评论 -
c语言指针详解
指针是C语言中广泛使用的一种数据类型。 运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构; 能很方便地使用数组和字符串; 并能象汇编语言一样处理内存地址,从而编出精练而高效的程序。指针极大地丰富了C语言的功能。 学习指针是学习C语言中最重要的一环, 能否正确理解和使用指针是我们是否掌握C语言的一个标志。同时, 指针也是C语言中最为困难的一部分,在学习中除了要正确理解基本概念,...转载 2018-04-03 10:52:11 · 238 阅读 · 0 评论 -
编程语言中的句柄是什么?
句柄就是个数字,一般和当前系统下的整数的位数一样,比如32bit系统下就是4个字节。这个数字是一个对象的唯一标示,和对象一一对应。这个对象可以是一个块内存,一个资源,或者一个服务的context(如 socket,thread)等等。通俗点说,就和你去饭店吃饭要排队,前台小姐给你分配了一个编号一样,然后她可以通过编号找到你。句柄就是这样的一个编号,用来对各种奇奇怪怪的东西编号,系统对你来说是一个黑...原创 2018-04-03 11:07:01 · 15579 阅读 · 4 评论 -
详解C语言中的stdin,stdout,stderr
转载自 https://blog.csdn.net/Crazy_Tengt/article/details/72717144我们在写C程序时经常遇到printf(),fprintf(),perror(),这些东西到底有什么作用。说到这不得不提及stdin,stdout,stderr。想想,我们在用C去写文件时的操作,File *fp=fopen(),这个fp就是我们向系统申请的,相当于一通往文件...转载 2018-04-16 14:57:35 · 3244 阅读 · 0 评论 -
区分一下printf,sprintf,fprintf
printf:函数声明:int fprintf(FILE *stream, const char *format, ...)说明:标准输出,是把格式字符串输出到标准输出(一般是屏幕,可以重定向)。#include <stdio.h>int main(void){ int a=88,b=89; printf("%d %d\n",a,b); printf("%d,...原创 2018-04-16 15:24:56 · 118 阅读 · 0 评论 -
C语言开发环境的搭建
下载软件:CodeBlocks 一个开放源码的全功能的跨平台C/C++集成开发环境 下载地址MinGW 一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合,允许你在GNU/Linux和Windows平台生成本地的Windows程序而不需要第三方C运行时库 下载地址安装软件:安装CodeBlocks双击打开 codeblocks_16.1....原创 2018-04-04 09:42:18 · 447 阅读 · 0 评论 -
ASCII码字符对照表
转载自 http://www.51hei.com/mcu/4342.htmlASCII码大致由三部分组成: 1、ASCII 打印字符:数字 32–126 分配给了能在键盘上找到的字符,当您查看或打印文档时就会出现。注:十进制32代表空格 ,十进制数字 127 代表 DELETE 命令。下面是ASCII码和相应数字的对照表ASCII 码字符 ASCII 码字符 ASCII 码字符 ASCII 码字...转载 2018-04-25 11:13:42 · 515175 阅读 · 16 评论