
C语言
木锦:JUESHIZIYE
这个作者很懒,什么都没留下…
展开
-
include<filename>和#include"filename"的区别
对于#include,编译器先从标准库路径开始搜索filename.h,使得系统文件调用比较快;对于#include"filename.h",编译器先从用户的工作路径开始搜索filename.h,后去寻找系统路径,使得自定义文件较快。所以在写代码的过程中要根据实际情况选择是转载 2017-09-15 20:28:22 · 2688 阅读 · 0 评论 -
++i 与 i++ 到底有什么不同? i++ 和 ++i 解析!
一、i++; 使用完毕后再自加,遇到分号结束" ; "++i; 先对 i 自加,然后再使用它i = 2;num = (i++) + (i++) + (i++) + (i++);输出 num = 8,i = 6;num = (++i) + (++i) + (++i) + (++i); 3 4 5 6输出 num原创 2017-01-03 18:37:51 · 818 阅读 · 0 评论 -
C语言中,函数的具体执行过程。
给函数命名需要言简意赅(动词,名词结合、能体现函数功能)要形成自己的风格!函数名是一个指针常量,保存的是函数入口地址。1、通过函数名找到函数入口地址2、给形参分配空间3、给形参传值4、执行函数体语句5、返回返回值,释放空间函数传参注意; 当只使用不修改实参变量对应空间的值,传实参变量名。 当即使用也修改实参变量对应空间的值,传实参变量对应空间的地址。原创 2016-12-09 17:17:53 · 807 阅读 · 0 评论 -
位运算操作符详解二
位运算是指进行二进制的运算。在系统软件中,常需要处理二进制位的问题。例如,将一个存储单元中的各二进制位左移或右移一位,两个数按位相加等。C语言提供位运算的功能。运算符 含义 & 按位与 | 按位或 ^ 按位异或 ~ 取反 >> 右移说明: 位运算符中,除了 ~ 取反以外,均为二目(元)运算符,即要求两侧原创 2016-11-27 20:11:01 · 413 阅读 · 0 评论 -
测量各种数据类型的长度(包括指针),typedf关键字对数据类型的作用!
数据类型的相关知识点,设计数据类型的范围,如何测量数据类型或变量所占的字节长度,测量的两种方法的区别,补码的运算,typedf对数据类型的帮助原创 2016-11-26 14:56:53 · 767 阅读 · 0 评论 -
C都有哪些标准?都有哪些主要变化?
编程前先查一下编译器都支持哪些标准?1?C的标准化过程? C语言自诞生到现在,期间经历了多次标准化过程,主要分成以下几个阶段:? 1.1?Traditional?C此时的C语言还没有标准化,来自“C Programming Language, First Edition, by Brian W. Kernighan, Dennis M. Ritchie. Prent原创 2016-11-22 21:25:50 · 974 阅读 · 0 评论 -
一段完美实现字符串倒序的算法!
程序功能 : 输入 i am happy 输出 happy am i特点:自己想了一个实现字符串倒序的算法,可实现一个字符串中的某一段代码倒序,其它不变#include#include#define MAX_SIZE 100//作用输入 i am happy => happy am ivoid daoxu(char *str,int p,i原创 2016-11-26 10:53:24 · 1359 阅读 · 0 评论 -
数组和指针的区别?总结
数组和指针的区别数组要么在静态存储区被创建(如全局数组),要么在栈上被创建。数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。指针可以随时指向任意类型的内存块,它的特征是“可变”,所以我们常用指针来操作动态内存。指针远比数组灵活,但也更危险。 字符数组a的容量是6个字符,其内容为hello\0。a的内容可以改变,如a[0]= ‘X’。指原创 2016-12-08 15:10:32 · 851 阅读 · 0 评论 -
在C语言中,如何做到在用户输入密码时不显示密码本身,只回显星号。或者什么都不显示?
在C语言中,如何做到在用户输入密码时不显示密码本身,只回显星号。或者什么都不显示? 我们调用一个函数getch(),它包含在头文件中。该函数可以在输入的同时不显示输入内容,并在输入完成后不需回车而自动终止输入。与此同时,该头文件中还包含另外一个函数getche(),它和getch()功能相同,唯一的区别是输入的同时显示输入的内容。本文我们只用到getch();推荐算法:#include原创 2016-12-07 22:28:51 · 11726 阅读 · 0 评论 -
位运算操作符详解一
位运算是指进行二进制的运算。在系统软件中,常需要处理二进制位的问题。例如,将一个存储单元中的各二进制位左移或右移一位,两个数按位相加等。C语言提供位运算的功能。运算符 含义 & 按位与 | 按位或 ^ 按位异或 ~ 取反 >> 右移说明: 位运算符中,除了 ~ 取反以外,均为二目(元)运算符,即要求两侧原创 2016-11-24 22:59:50 · 911 阅读 · 0 评论 -
main()函数形参是怎么回事?
C语言规定main函数的参数只能有两个,习惯上这两个参数写为argc和argv。因此,main函数的函数头可写为: main (argc,argv)C语言还规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针数组。加上形参说明后,main函数的函数头应写为:main (argc,argv)int argv;char *argv[];或写成:mai原创 2016-12-06 21:26:33 · 4289 阅读 · 0 评论 -
将一个任意输入的10进制数转化为16进制形式输出
//将一个任意输入的10进制数转化为16进制形式输出#include#define MAXSIZE 11void ten20x(unsigned int a,char *p){ int i; int j = 2; int sum = 0; int count = 0; unsigned int mask = 0x80000000原创 2016-12-17 22:42:06 · 7544 阅读 · 0 评论 -
抓交通肇事犯车牌号问题
抓交通肇事犯1.问题描述: 一辆卡车违反交通规则,撞人后逃跑。现场有三人目击该事件,但都没有记住车号,只记下车号的一些特征。 1.牌照的前两位数字是相同的; 2.牌照的后两位数字是相同的,但与前两位不同。 3.四位的车号刚好是一个整数的平方。#include#includeint main(){ int i = 0;原创 2016-12-17 22:43:35 · 3446 阅读 · 0 评论 -
有一对兔子,从出生后的第三个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假设所有的兔子都不死,问30个月内每个月的兔子总数为多少?
问题描述: 有一对兔子,从出生后的第三个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假设所有的兔子都不死,问30个月内每个月的兔子总数为多少?优秀算法:#include int main(){ long int fib1 = 1; long int fib2 = 1; int i = 0; for(i =原创 2016-12-18 23:03:47 · 4800 阅读 · 1 评论 -
字节对齐
转自(http://blog.youkuaiyun.com/shuaishuai80/article/details/6153851)一.什么是字节对齐,为什么要对齐? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一转载 2017-07-12 11:03:41 · 530 阅读 · 0 评论 -
malloc、calloc、realloc的区别
(1)C语言跟内存分配方式从静态存储区域分配. 内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在.例如全局变量、static变量.在栈上创建 在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放.栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限.从堆上分配,亦称动态内存分配转载 2017-07-12 10:40:00 · 404 阅读 · 0 评论 -
什么是多任务?什么叫做进程?什么是线程?
1、什么叫做多任务?IT系统,同时完成多项任务处理,这个同时指的是同一段时间内,而不是同一瞬时。多任务处理是指用户可以在同一时间内运行多个应用程序,每个应用程序被称作一个任务.Linux、windows就是支持多任务的操作系统,比起单任务系统它的功能增强了许多。当多任务操作系统使用某种任务调度策略允许两个或更多进程并发共享一个处理器时,事实上处理器在某一时刻只会给一件任务提供服务。因为原创 2017-01-24 09:27:57 · 6236 阅读 · 0 评论 -
linux下C语言socket网络编程简例
转自博文:http://blog.youkuaiyun.com/kikilizhm/article/details/7858405在练习写网络编程时,该例给了我帮助,在写服务器时,我把while逻辑位置想法错了,一直检查不出来,看了该例,才找到自己逻辑上的错误 !这里给出在Linux下的简单socket网络编程的实例,使用tcp协议进行通信,服务端进行监听,在收到客户端的连接后,发送数据给客户转载 2017-01-22 23:36:36 · 623 阅读 · 0 评论 -
malloc函数实现原理!
任何一个用过或学过C的人对malloc都不会陌生。大家都知道malloc可以分配一段连续的内存空间,并且在不再使用时可以通过free释放掉。但是,许多程序员对malloc背后的事情并不熟悉,许多人甚至把malloc当做操作系统所提供的系统调用或C的关键字。实际上,malloc只是C的标准库中提供的一个普通函数,而且实现malloc的基本思想并不复杂,任何一个对C和操作系统有些许了解的程序员都可以很转载 2016-12-03 12:37:54 · 15640 阅读 · 2 评论 -
Linux 网络编程流程和常用函数总结!
原创 2017-01-21 23:03:25 · 443 阅读 · 0 评论 -
Linux 网络编程示例
参考博文:http://www.cnblogs.com/luxiaoxun/archive/2012/10/16/2725760.html示例程序是国嵌的 linux 网络编程是通过socket(套接字)接口实现,Socket是一种文件描述符,socket起源于UNIX,在Unix一切皆文件哲学的思想下,socket是一种"打开—读/写—关闭"模式的实现,服务器和客户端各自转载 2017-01-20 23:19:49 · 432 阅读 · 0 评论 -
小明有5本新书,要借给A、B、C三位小朋友,若每人每次只能借一本, 共有多少种借书的方案?
#include/* 小明有5本新书,要借给A、B、C三位小朋友,若每人每次只能借一本, 共有多少种借书的方案?*/int main(){ int a; int b; int c; int count = 0; for(a = 1; a { for(b = 1; b {原创 2017-01-17 21:54:16 · 11016 阅读 · 2 评论 -
有10元,5元,2元,1元四种面值的人民币,问组成100元钱有多少种组合?
有10元,5元,2元,1元四种面值的人民币,问组成100元钱有多少种组合?问题分析: 为了表达清楚,用 TEN , FIVE , TWO , ONE , 表示 10元,5元,2元,1元的人民币。可知 : 0 0 0 0原创 2017-01-11 15:39:25 · 12227 阅读 · 0 评论 -
i++和++i是怎么用的?它们作为函数参数时的使用举例
一、i++; 使用完毕后再自加,遇到分号结束" ; "++i; 先对 i 自加,然后再使用它i = 2;num = (i++) + (i++) + (i++) + (i++);输出 num = 8,i = 6;num = (++i) + (++i) + (++i) + (++i); 3 4 5 6输出 num原创 2016-12-19 23:46:24 · 3733 阅读 · 2 评论 -
C中数据类型数值范围解释!!!
类型说明符 int 字节数 4 ; 数的范围 -2^31 -- 2^31 - 1;类型说明符 unsigned int 字节数 2 ; 数的范围 0 -- 2^16 - 1; (0 - 65535)类型说明符 short int原创 2016-11-23 19:53:52 · 873 阅读 · 0 评论 -
函数指针、数组指针、字符串指针的定义形式与运算符举例、指针变量做函数参数用法
一个变量的地址称为该变量的指针;如果有一个变量专门用来存放另一个变量的地址(即指针),则称它为指针变量;定义指针变量的一般形式: 基类型 *指针变量名; float *pointer_1; char *pointer_2;指针变量的赋值: int i,j; int *pointer_1,*pointer_2; pointer_1=&i;pointer_2=&j原创 2016-11-04 23:44:42 · 836 阅读 · 0 评论 -
GDB 调试器补充,命令
1)help l或help list 命令一次只能显示十行,若想查看后面的源码可一直按回车键,直到所有源码显示完。list命令(列出源码): l 11表示查看11周围10行代码,即6-15行。 l 1可从头查看源码。 l - 表示查看上一个l命令查看的代码之前的10行,即1-5行。 l 6,20表示查看6-20行的源码 l 函数名原创 2016-11-15 18:29:30 · 336 阅读 · 0 评论 -
Linux下调试器 GDB和工程管理器MAKE 应用详解!
调试器 GDB 1.启动被调试程序 2.设置断点 3.查看断点处变量的值 调试选项 -g gcc -g text.c -o text gdb test //(gdb + 可执行文件) 作用 : 打开gdb调试工具 用到的指令解释: run 运行程序 所有的命令都可以简写,只写第一个字母 l原创 2016-11-13 20:20:43 · 506 阅读 · 0 评论 -
变量的存储类别详解二
变量从作用域(空间)角度来分可以分为全局变量和局部变量 从变量值存在的时间(即生存期)角度来分,可以分为静态存储方式和动态存储方式。静态存储方式:程序在运行期间,由系统分配固定的存储空间的方式。动态存储方式:程序在运行期间根据需要进行动态的分配存储空间的方式内存中供用户使用的存储空间可以分为三个部分: 程序区 静态存储区原创 2016-11-18 23:13:32 · 814 阅读 · 0 评论 -
指针易混肴的定义方式详解
一、 int (*p)[4]; 表示p是一个指针变量,它指向包含4个整型元素的一维数组。注意*p两边的括号不能少,如果写成*p[4],由于[] 运算级别高,因此p 先于[4] 结合,p[4]是定义数组的形式,再与前面的 *号结合, * p [4]就是指针数组; 二、 char *string =“I love china!”;等价于下面两行原创 2016-11-15 10:39:27 · 436 阅读 · 0 评论 -
C语言printf()函数中一些不为人知的技巧!
格式: CODE:printf("\033[字背景颜色;字体颜色m字符串\033[0m" ); printf("\033[47;31mhello world\033[5m");47是字背景颜色, 31是字体的颜色, hello world是字符串. 后面的\033[5m是控制码. 颜色代码:QUOTE:字背景颜色范围: 40--49原创 2016-11-30 17:22:59 · 1912 阅读 · 0 评论 -
变量的存储类别详解一
变量从作用域(空间)角度来分可以分为全局变量和局部变量 从变量值存在的时间(即生存期)角度来分,可以分为静态存储方式和动态存储方式。静态存储方式:程序在运行期间,由系统分配固定的存储空间的方式。动态存储方式:程序在运行期间根据需要进行动态的分配存储空间的方式内存中供用户使用的存储空间可以分为三个部分: 程序区 静态存储区原创 2016-11-17 23:23:55 · 1280 阅读 · 0 评论 -
C语言中局部变量和全局变量解释
局部变量 : 在一个函数内部定义的变量是局部变量,它只在本函数范围内有效,也就是说只有在本函数内才能使用它,在此函数外是不能使用这些变量的。这些称为局部变量。 说明 (1) 不同函数中可以使用相同名字的变量,它们代表不同的变量,互不干扰。 (2) 形式参数也是局部变量 (3) 在一个函数内部,可以再复合语句中定义变量,这些变量仅在本复合语句中有效,原创 2016-11-16 23:05:45 · 1270 阅读 · 0 评论 -
用一道例题来分享两种匹配字符串的算法!
输入一个字符串,同时输入帧头和帧尾(可以是多个字符),将该字符串中合法的帧识别出来,提示 :帧头和帧尾分别是 head 和 tail 字符串 "asdheaddjfvjdhtail"中headdjfvjdhtail是合法帧,主函数.c文件#include#include#define MAX_SIZE 100int main(){ int i;原创 2016-11-28 23:33:11 · 526 阅读 · 0 评论 -
格式输入与输出详解二:
格式输入与输出详解:1. printf函数的一般格式为 : printf(格式控制,输出表列); 例如 printf(“%d,%c\n”,i,c); 格式控制是用双撇号括起来的字符串,也称“转换控制字符串”,它包括两种信息。 1,格式说明。 格式说明由“%”和格式字符组成,如%d,%c等,作用是将输出的数据转换为指定的格式。2,普通字符,普通字符既需要原样原创 2016-11-11 22:24:38 · 600 阅读 · 0 评论 -
格式输入与输出详解一:
格式输入与输出详解:1. printf函数的一般格式为 : printf(格式控制,输出表列); 例如 printf(“%d,%c\n”,i,c); 格式控制是用双撇号括起来的字符串,也称“转换控制字符串”,它包括两种信息。 1,格式说明。 格式说明由“%”和格式字符组成,如%d,%c等,作用是将输出的数据转换为指定的格式。2,普通字符,普通字符既需要原样原创 2016-11-10 22:11:32 · 1419 阅读 · 0 评论 -
计算机内存结构!
变量的三大特点: 数据类型、作用域、存储类型计算机的三大组成: 1.CPU 2.内存 3.硬盘内存与硬盘的区别: 1.内存中保存动态数据,硬盘中保存静态数据。 2.断电后内存中的数据丢失,硬盘中的数据不会丢失。 3.执行程序时,从硬盘中调用程序,在内存中执行。 可执行程序在硬盘里为 a.out,调到内存里执行时变为进程。如何提高计算机原创 2016-11-29 21:53:16 · 2451 阅读 · 0 评论 -
数组的定义、初始化及引用
一维数组元素的引用:#include void main(){ int i,a[10]; for(i=0;i9;i++) { a[i]=1; } for(i=9;i>=0;i++) { printf("%d\n",a[i]); }}一维数组的初始化:一维原创 2016-10-31 23:42:55 · 822 阅读 · 0 评论 -
起泡法对10个数排序
冒泡排序算法示例,排序算法原创 2016-11-01 22:45:06 · 2677 阅读 · 1 评论 -
C语言常用的字符串处理函数详解!!!!!!!
常用的字符串处理函数: 提醒:调用这些函数注意添加头文件 #include 1.puts函数:puts(字符数组名);作用:将一个字符串输出到终端。 2.gets函数:gets(已定义的字符数组名);作用:从终端输入一个字符串到字符数组。该函数调用后会返回一个函数值,为字符数组的起始 地址。 3.str原创 2016-11-03 22:30:34 · 990 阅读 · 0 评论