C
岁月神偷小拳拳
这个作者很懒,什么都没留下…
展开
-
C语言中堆、栈、队列
C语言中堆、栈和队列:1.堆和栈(1)数据结构的堆和栈堆栈是两种数据结构。栈(栈像装数据的桶或箱子):是一种具有后进先出性质的数据结构,也就是说后存放的先取,先存放的后取。这就如同要取出放在箱子里面底下的东西(放入的比较早的物体),首先要移开压在它上面的物体(放入的比较晚的物体)。堆(堆像一棵倒过来的树):是一种经过排序的树形数据结构,每个结点都有一个值。通常所说的堆的数据结构原创 2016-06-24 12:24:31 · 6279 阅读 · 0 评论 -
unsigned int与int相加
当int和unsigned in相加时,要将int转化为unsigned int,而int小于0,所以它的最高位是符号位为1,所以转化的结果是一个很大的正数,在第一个if语句中,是两个“正数”相加,结果自然就大于0了。而在z = a+b这一句时,它把a+b的结果看做一个int类型,而a+b最高位为1,所以z是一个负数,所以打印的是第二个语句。# include void main(){原创 2016-09-07 22:43:23 · 893 阅读 · 0 评论 -
sizeof与strlen的区别
一、sizeof sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。 它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。 由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof来返回类型以及静态分配的对象、结构或数组所占的原创 2016-08-17 16:06:44 · 245 阅读 · 0 评论 -
位域
有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域, 并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。 这样就可以把几个不同的对象用一个字节的二进原创 2016-08-16 12:00:15 · 251 阅读 · 0 评论 -
C语言数据类型所占字节数
C语言数据类型所占字节数:(1)16位编译器:char :1个字节unsigned char :1个字节char*(即指针变量):2个字节short : 2个字节unsigned short : 2个字节int: 2个字节unsigned int : 2个字节long: 4个字节unsigned long: 4个字节long long原创 2016-06-21 16:09:24 · 4046 阅读 · 0 评论 -
C语言main函数参数
C语言main函数参数:int main(int argc , char *argv[ ]){ ;}或者是:int main(int argc, char** argv)argc:命令行总的参数的个数(以空白符分隔);argv:字符串指针数组(数组内存放指向char类型的指针),用来存放指向字符串参数的指针数组,每个元素指向一个参数,每个元素值为命令行中原创 2016-06-21 15:24:23 · 707 阅读 · 0 评论 -
C与C++的区别
(1)标准C++是标准C的超集;(2)C:面向过程,结构化语言,它的重点在于算法和数据结构,C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制);程序=数据结构+算法;侧重于计算机底层操作; C++:面向对象,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出原创 2016-06-16 21:52:48 · 463 阅读 · 0 评论 -
C结构体、C++结构体 和 C++类的区别
C结构体、C++结构体基本相同,C++类主要是方法的实现。结构体是数据类型的集合类是数据类型加方法的集合,基本如此,更注重方法。1.C的结构体和C++结构体的区别(1) C的结构体内不允许有函数存在,C++允许有内部成员函数,且允许该函数是虚函数。所以C的结构体是没有构造函数、析构函数、和this指针的。(2)C的结构体对内部成员变量的访问权限只能是public,而原创 2016-06-14 09:34:32 · 7482 阅读 · 1 评论 -
二维数组与指向指针的指针
二维数组与指向指针的指针:以前一直有种误解:二维数组的是数组的数组,所以数组的首地址是指向第一个元素指针,而这个元素又是一个数组,所以把数组首地址理解为指向指针的指针。#includevoid main(){ int a[6][8]; int **p; p = a; printf("\n");}因为a代表原创 2016-06-13 11:53:31 · 5000 阅读 · 6 评论 -
getch(),getche(),getchar()的区别
getch(),getche(),getchar()的区别:1.getch()和getche()函数 这两个函数都是从键盘上读入一个字符。其调用格式为: getch(); getche(); 两者的区别是:getch()函数不将读入的字符回显在显示屏幕上,而getche() 函数却将读入的字符回显到显示屏幕上。 例1: #include "stdio"原创 2016-06-28 17:56:33 · 355 阅读 · 0 评论 -
C与C++的内存分配方式
C与C++的内存分配方式:内存的三种分配方式:1. 从静态存储区分配:此时的内存在程序编译的时候已经分配好,并且在程序的整个运行期间都存在。全局变量,static变量等在此存储。2. 在栈区分配:相关代码执行时创建,执行结束时被自动释放。局部变量在此存储。栈内存分配运算内置于处理器的指令集中,效率高,但容量有限。3. 在堆区分配:亦称动态分配内存。程序在运行的时候用malloc或n原创 2016-06-26 18:16:27 · 753 阅读 · 0 评论 -
C语言两种for循环
for循环语句可以有两种写法:A:for(i = 0; i { ; }B:for(i = cnt; i { ; }共同点:可实现相同的功能。不同点:代码执行的过程中,在内存中A要比B多一条语句,每次for循环,A都要从内存中多加载一次c原创 2017-05-08 10:50:16 · 1122 阅读 · 0 评论