![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
文章平均质量分 67
追_梦_者
搬砖码农一位
展开
-
linux操作系统下c语言编程入门
linux操作系统下c语言编程入门--Linux下C开发工具介绍Linux的发行版中包含了很多软件开发工具. 它们中的很多是用于 C 和 C++应用程序开发的. 本文介绍了在 Linux 下能用于 C 应用程序开发和调试的工具. 本文的主旨是介绍如何在 Linux 下使用 C 编译器和其他 C 编程工具, 而非 C 语言编程的教程.GNU C 编译器GNU C 编译器(转载 2014-12-27 21:31:46 · 1271 阅读 · 0 评论 -
深入C语言返回值
深入C语言返回值最近在写另一篇博客时,突然发现了一个问题,感到好奇怪,和学长讨论了好久,但是还是没什么结果,于是就请教了网上的大神,终于有所收获,具体问题如下:当一个函数(非main函数)没有给其显式的return时,他的返回值是什么呢?本来我的猜想是:如果没有显式的return时,如果当前函数最后一行是个有返回值的函数时,返回这个函数的返回值,如果是个没有返回值的函数或是个表达式,则原创 2015-11-18 14:58:25 · 830 阅读 · 0 评论 -
两升序链表合并
两升序链表合并问题:输入两个非递减序列的链表,合并这两个链表并使新链表中的结点仍然是按照非递减排序的,要求使用原来的链表空间。例如:1,3,9和 2,8,结果为:1,2,3,8,9、分析:分析完毕,看代码:#include#includetypedef int DataType;typedef struct node原创 2015-11-22 17:53:00 · 1077 阅读 · 0 评论 -
关于C语言中的形参列表空着与加void的区别
关于C语言中的形参列表空着与加void的区别来一段代码大家看看,不,两段吧!int func(){printf(“hello world\n”);} int func(void){printf(“hello world\n”);} 请问这两段代码一不一样呀?不一样.......再仔细看看,嗯嗯,就是不一样,因为一个有void ,另一个没有嘛,原创 2015-11-12 23:31:21 · 2322 阅读 · 0 评论 -
Linux进程间通信之管道
Linux进程间通信之管道1.管道的分类:按有无名称,管道主要分为有名管道和匿名管道2.匿名管道管道是一种进程之间进行单向通信的方式,由于其通信只是单方向的,所以起有以下缺点:1.通信只是单方向的,通信太局限2.其缓冲区大小是一定的,缓冲区满了之后就无法继续再写入数据。3.通过管道传输的只能是无格式的字节流。4.只能用于具有亲缘关系的进程之间,如父子进程,兄弟进程。原创 2015-08-04 09:36:58 · 852 阅读 · 0 评论 -
Linux管道的实现机制
Linux管道的实现机制在Linux中,管道是一种使用非常频繁的通信机制。从本质上说,管道也是一种文件,但它又和一般的文件有所不同,管道可以克服使用文件进行通信的两个问题,具体表现为:· 限制管道的大小。实际上,管道是一个固定大小的缓冲区。在Linux中,该缓冲区的大小为1页,即4K字节,使得它的大小不象文件那样不加检验地增长。使用单个固定缓冲区也会带来问题,比如在写管道转载 2015-08-02 14:00:02 · 775 阅读 · 0 评论 -
C语言编程对缓冲区的理解
解析C语言编程对缓冲区的理解 下面介绍缓冲区的知识。 一、什么是缓冲区 缓冲区又称为缓存,它是内存空间的一部分。也就是说,在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的空间就叫做缓冲区。 缓冲区根据其对应的是输入设备还是输出设备,分为输入缓冲区和输出缓冲区。 二、为什么要引入缓冲区转载 2015-07-21 11:31:03 · 1035 阅读 · 0 评论 -
void ,NULL与0的区别联系
void ,NULL及0的区别联系void的详解:void的字面意思是“无类型”或“空类型”,void*则为“无针型指针”,那就意味着void*可以指向任何类型的数据。众所周知,如果指针p1和p2的类型相同,那么我们可以直接在p1和p2间互相赋值,不会出现问题;但如果p1和p2指向不同的数据类型,则必须使用强制类型转换运算符把赋值符号两边的类型转换为相同类型或兼容的类型,即就是把赋值运原创 2015-07-30 15:24:48 · 1719 阅读 · 0 评论 -
实现自己的ls命令
估计每个使用过linux系统的人都知道ls是啥吧。也相信大家都对ls的简单命令烂熟于心了吧,这里就不想再赘述了,直接进入正题吧。看代码,里面会有许多注释,相信的家一定能看懂的。说明:此代码我在kail linux下编译无任何错误,运行也基本无bug,相信载一般linux下也无问题。原创 2015-07-27 19:19:10 · 1093 阅读 · 0 评论 -
malloc的内存分配之 malloc(0)的内存分配情况
#includeusing namespace std;int main(){ char *p; if((p=(char *)malloc(0))==NULL) puts("got a null pointer"); else puts("got a vali原创 2015-03-26 21:55:42 · 670 阅读 · 0 评论 -
C语言中的动态内存分配详解
C语言中的动态内存分配详解C语言中最难也最重要的要数指针这一章了,对指针的熟练程度决定了你对C语言的学习的好坏程度,笔者自己在学习C语言时,在指针上花费的时间几乎等于学习其他基础知识的时间,所以,对指针这一章有着自己独特的见解和学习方法。指针,简单来说其作用就是用来操作内存的,而C语言中动态内存分配就是一大难点,所以我今天特别来讲一下关于动态内存分配的问题,先给出代码:#include原创 2015-03-30 22:31:37 · 887 阅读 · 0 评论 -
斐波那契数列的实现
斐波那契数列形如1,1,2,3,5,8.........,后面的数是前面两数的和数所排成的数列称为斐波那契数列,那么,我们该怎样计算出他的第n项的数呢?下面是我所会的两种求斐波那契数列的方法。//递归实现 #includevoid main(){int n,i,num;printf("n=");scanf("%d",&n);num=m1(n);printf(原创 2015-04-01 16:30:48 · 717 阅读 · 0 评论 -
linux控制台下密码输入解决方案
在linux系统编过C语言程序的码农应该都知道,其和在windows编程是有很大的区别的,linux下没有许多在windows下常用的头文件,但也有许多windows下没有的头文件,对于初学者来说,是有一定的限制性的,就比如conio.h头文件,里面有许多的函数我们经常使用,因此,我们在windows下一个小系统时,常用的登录环节无法在linux下使用,今天,我就来帮大家解决这一问题。原创 2015-05-27 19:48:15 · 2006 阅读 · 1 评论 -
int main(int argc,char* argv[])详解
int main(int argc,char* argv[])详解 argc是命令行总的参数个数 argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数 命令行后面跟的用户输入的参数,比如: int main(int argc, char* argv[]) { int i原创 2015-04-29 13:29:54 · 1665 阅读 · 0 评论 -
简单ATM机模拟系统
自学C语言有大概四五个月了,这周末闲的无聊,于是写了一个简单的小程序玩玩,因为只学了前面一部分,还望大神们见笑了。#includevoid clrscr();void m0();//主调函数 void m1();//查询余额函数声明 float m2();//取款函数声明 float m3();//存款函数声明 void m4();//取款成功函数声明 void m原创 2014-12-27 21:42:35 · 2437 阅读 · 1 评论 -
一个泛型冒泡排序的实现
无聊中,于是写了一个冒泡排序的泛型算法。算法很简单,但是个人觉得从C标准库中学到的这种泛型的思想很有益处……12345678910111213141516171819202122转载 2014-12-27 21:37:52 · 1029 阅读 · 0 评论 -
控制台下星号密码输入的实现
最近频繁需要实现在windows控制台下输入星号密码的功能,Unix/Linux那种没有任何屏显的实现总感觉对用户不太友好。今天在自己的Linux代码库中发现了自己去年写图书馆管理系统的时候写的一个密码输入函数。索性拿来修改了接口并且重新优化了处理逻辑后移植到了windows下(其实也就是加上几句条件编译罢了)。代码如下:1转载 2014-12-27 21:33:40 · 742 阅读 · 0 评论 -
盘点Linux操作系统下C语言编程注意事项
一、工具的使用本文引用地址:http://www.eepw.com.cn/article/249694.htm 1、学会使用vim/emacs,vim/emacs是linux下最常用的源码编辑具,不光要学会用它们编辑源码,还要学会用它们进行查找、定位、替换等。新手的话推荐使用vim,这也是我目前使用的文本编辑器。 2、学会makefile文件的编写规则,并结合使用工具acl转载 2014-12-27 21:40:06 · 815 阅读 · 0 评论 -
Cantor表第N个值的求解
题目描述: 现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的: 1/1 1/2 1/3 1/4 1/5 … 2/1 2/2 2/3 2/4 … 3/1 3/2 3/3 … 4/1 4/2 … 5/1 … … 我们以Z字形给上表的每一项编号。第一项是1/1,然后是1/2,2/1,3/1,2/2,… 输入描述: 整数N(1≤N≤1000原创 2016-04-29 18:04:57 · 4061 阅读 · 0 评论