C语言
文章平均质量分 54
life_liver
这个作者很懒,什么都没留下…
展开
-
C语言进程结构
C语言的程序被加载到内存以后,可以有如下结构: text段,用来存储二进制代码initialized data段,通常简称data段,用来存储显式初始化的全局变量,如 int a=9;uninitialized data段,通常称作bss(block started by symbol),用来存储未显式初始化的全局变量,如int a; 尽管操作系统内核会将a初始化为0;he原创 2013-03-09 10:45:56 · 781 阅读 · 0 评论 -
Linux下查看一个文件的类型
Linux操作系统中,文件类型分为七类:1、普通文件2、目录(文件夹)3、面向块的设备文件(磁盘、磁带)4、面向字符的设备文件(纸带输入/穿孔输入机、打印机)5、符号链接6、管道pipe及命名管道FIFO7、套接字下面是使用stat系统调用函数来判断文件类型的自定义函数:#include#include#include#include void原创 2013-11-13 20:23:20 · 1160 阅读 · 0 评论 -
heap creation
There two methods to construct a heap from a unordered set of array.原创 2013-08-27 11:27:56 · 613 阅读 · 0 评论 -
数组作为函数参数
数组作为参数传递给函数时,在函数内部对数组进行的修改在函数退出后仍然适用,在这一点上数组作为参数和指针作为参数效果一样。如下例所示:#includevoid test_array(int b[]){ int j; int size=sizeof(b); for(j=0;j<size;j++) b[j]=2;原创 2013-08-26 20:18:37 · 949 阅读 · 0 评论 -
C语言“++”运算符
本文转载自:http://www.cnblogs.com/bigshow/archive/2008/10/27/1320547.html所有C语言教科书上都讲了“++”这个运算符,放在变量前表示先加1再使用该变量,放在变量后面表示先使用该变量再加1。但是我们真的掌握了这个运算符了吗?如果你答对了下面这两个程序的输出结果,就说明你已经掌握了这个运算符的用法了。程序1:#include转载 2013-05-04 17:06:38 · 1120 阅读 · 0 评论 -
有序数组前后两部分旋转后,查找最小值
题目:一个有序数组(如{1,2,3,4,5,6,7})前后两部分旋转(变为{4,5,6,7,1,2,3})后,查找数组中的最小值。大致思路,利用二分查找法:线比较array[left](4)与array[middle](7)的值,若array[middle]的值大于array[left],则说明从array[left]到array[middle]这一段包含在值都比较大的那一段中,而最小值肯定出原创 2013-04-29 21:45:56 · 855 阅读 · 0 评论 -
文件操作
说明,上图展示了linux系统中,用C语言打开文件后,内核所维护的几个结构。最左边那个图是以process为范围的,每个process中不同的文件描述符对应不同的左边结构中的一个entry。中间那个结构是系统范围内的一个结构,是跨进程的。最后边那个结构式对应文件的,即每个文件对应一个v-node结构。 有以下几点需要注意:1、不同进程打开的同一个文件同一个文件是拥有不同的f原创 2013-04-18 09:47:54 · 650 阅读 · 0 评论 -
fflush与fsync
区别:1、头文件不同fflush包含在头文件中;fsync包含在头文件中;2、参数不同fflush函数原型是: int fflush(FILE* fp); 即,fflush的参数时文件指针。fsync函数原型是: int fsync(int fd); 即,fsync的参数时文件描述符。2、应用层次不同fflush函数应用于用户层,将C语言函数库中的函数提原创 2013-03-26 21:48:30 · 1203 阅读 · 0 评论 -
C语言枚举类型
C语言中的枚举类型介绍如下:(不同语言中可能有微小的差别)枚举类型定义格式:enum [enum_name] {,[enum_element2],[enum_element3],.....}以上格式中,方括号内别是可选的,尖括号内表示必选的。以上枚举类型的名字是可选的是指当枚举类型定义时定义变量这种情况,如下:enum day {monday,tuesday,wednesday原创 2013-03-27 09:56:08 · 1086 阅读 · 0 评论 -
数值精度------开方与平方
问题:7.0*sqrt(2.0)*sqrt(2.0)*0.5等于7.0吗?答案:不等于。说明:跟浮点数的表示精度有关。通过验证发现(没有查阅资料找理论值),当两个double类型的数据相差小于等于4.4e-16时,这两个数被认为是相等的。当两个double类型的数相差大于等于4.49e-16时,这两个数被认为是不相等的。原创 2013-03-26 10:56:06 · 970 阅读 · 1 评论 -
gcc编译使用log、exp等函数的文件
假如你的源代码中使用了头文件中的函数log、exp等函数,如下代码示例:#include#includeint main(){ double d=log(8.0); double d1=exp(2.0); printf("d=%lf d1=%lf\n",d,d1); return 0;}以上源代码在编译时(源代码保存原创 2013-03-26 15:41:25 · 3945 阅读 · 0 评论 -
C语言错误使用
1、float f;char* cp=&f;此种写法,编译时不会报错,但会提出警告。解析:指针变量是有类型的,所有类型的指针变量所占空间大小是相等的,都是某个字节的地址。但不同类型的指针变量代表从这个字节的地址完后数几个字节表示该指针所指向的内容,比如char* 类型指针变量所指向的内容就是它所指向的那个字节的地址,而float*类型变量所指向的float类型变量的值存储在他所指向的字节原创 2013-03-16 14:16:25 · 658 阅读 · 0 评论 -
const char*
以下内容在C语言是成立的:1、const char* 与char const* 的不同const char* cp; //cp所指向的存储空间中的内容是不能通过cp指针去改变的char const* cp; //指针变量cp的内容是不变的,即指针cp只能始终指向一个地址2、const char*使用注意事项const char* cp;char c='a';cp=&c;原创 2013-04-04 10:22:22 · 734 阅读 · 0 评论 -
C语言的正确使用
1、char s[]="who am i";说明:1、可以使用双引号对字符数组赋值; 2、一维数组的元素个数假如在定义时初始化,可以不指定。2、char* cp=“str1” "str2";或char* cp="str1""str2";说明:在定义并初始化字符串常量的指针时,可以将两个字符串连在一起,两个字符串之间可有空格也可无空格。cp指向的字原创 2013-03-16 14:19:38 · 769 阅读 · 0 评论 -
C语言---变长参数列表---变长参数的传递
转自:http://book.51cto.com/art/200902/109025.htm5.4.2 变长参数的传递上一节讲述了如何创建具有变长参数的函数和如何读取变长参数,其操作都在函数内完成,本节将讲述把变长参数列表整体作为参数传递给其他函数的方法。变长参数传递的函数族如下: #include int vprintf(const char *format转载 2013-03-28 21:28:17 · 3816 阅读 · 0 评论 -
C语言---变长参数列表---变长参数的使用
转自:http://book.51cto.com/art/200902/109024.htm5.4 函数的变长参数文件的格式化输入输出函数都支持变长参数。定义时,变长参数列表通过省略号"…"表示,因此,具有变长参数列表的函数定义格式为:type 函数名(参数1, 参数2, 参数n, ...);其中type为函数的返回值类型,参数1~参数n为定长参数,"..."代表变长参数,注意".转载 2013-03-28 21:26:07 · 1190 阅读 · 0 评论 -
C语言-scanf
C语言中的scanf()函数,当要读多个数据时,如:int i;float f;scanf("%d,%f",&i,&d);scanf()在遇到空白字符时认为一个数据读入完成,如以上语句可以在终端输入:10 2.3从文件读入时的,fscanf()用法与scanf()相同,所以在文件中写入不同的输入时,数据之间用空格和换行符都行。用逗号时错误的。原创 2013-03-01 09:50:17 · 346 阅读 · 0 评论 -
Linux环境,使用C语言获得文件access、modify、change的时间
文件的状态中,维护着三个时间,分别是:last access time:最后访问时间,文件的读、写、执行等都会改变文件的最后访问时间last modify time:最后修改时间,文件的truncate、写等都会改变文件的最后修改时间。last modify time:最后改变时间,改变文件的拥有者user、用户组group、访问模式mode、链接数link count等都会改变文件的原创 2013-11-14 10:34:14 · 2098 阅读 · 1 评论