C编程
文章平均质量分 88
C编程
涂作权的博客
To do what I want to do!
展开
-
Linux下apache服务器安装,sqlite安装,apache启动,关闭,重启,编写cig程序进行测试,浏览器访问cig程序
1安装ubuntu 14.04 64位操作系统2安装apache和sqllite以及依赖的sqllite开发库3配置目录 /etc/apache24 html页面目录 var/www/5 cgi-bin目录 /usr/lib/cgi-bin6日志文件:/var/log/apache2原创 2014-11-08 13:13:29 · 2892 阅读 · 0 评论 -
C语言中的关键字
auto 局部变量(自动储存)break 无条件退出程序最内层循环case switch语句中选择项char 单字节整型数据const 定义不可更改的常量值contin原创 2014-07-01 16:10:57 · 962 阅读 · 0 评论 -
指针数组
1、指针:指针是用来存放地址的变量,称之位指针变量,简称指针。简单案例:注意*p前面的类型决定了取地址的能力。如果是int类型的,就说明在32平台下可以取址能力是4个字节。2、指针的本质就是保存一个地址,在32位的系统上,所有程序的内存地址都用4个字节表示,所以不管是什么类型的指针。指针大小都占4个字节。‘*’称之为间接引用,表示根据指针变量里保原创 2014-07-11 01:26:39 · 783 阅读 · 0 评论 -
字符串操作(拷贝,比较,拼接等函数)
1、数组拷贝函数:strcpy(),截图如下: 如果把char dest[10]编程*dest,这时候可能错。如果strcpy复制数组。如有一下代码:char dest[3];char src[]=”hello”;printf(“%s\n”,strcpy(dest,src));这个时候仍然输入hello,说明如果目标数组原创 2014-07-11 01:45:29 · 5144 阅读 · 0 评论 -
c语言中常见错误总结
输入double类型的数据的方式是:double num;scanf(“%lf”,&num);scanf_s(“%lf”,&num,sizeof(double));2、unsigned类型和int类型的进行相加,这时候int->unsignedint。总结:一个负整型和一个无符号整型进行相加一定是整数。3、关于指针char原创 2014-07-11 01:33:02 · 1080 阅读 · 0 评论 -
文件加解密,文件操作
1、fseek,ftell,fread,fwrite(简单文件加密)#define_CRT_SECURE_NO_WARNINGS //去掉安全检查#include#include /*读取文件大小*/intgetfilesize(char *path){ FILE *pf = fopen原创 2014-08-03 21:10:17 · 1421 阅读 · 0 评论 -
c语言中字符串操作的工具类
1.编写头文件#define_CRT_SECURE_NO_WARNINGS//#pragmawarning(disable:4996)#include#include#include structCString{ char *p; //保存字符串首地址 i原创 2014-08-03 21:03:53 · 2201 阅读 · 0 评论 -
动态库和静态库
1.静态库不需要main函数,要想生成lib,要修改属性à常规à配置类型à改成dll2.静态库中的头文件只是说明,是给程序员看的,其实lib里面已经有了接口。3.链接lib的时候程序的体积就变大了。4.静态库更新的时候,需要重新生成,然后调用5.动态库调用就不用重新生成。6.动态库的调用代码:(使用的是HMODULELoadLibraryA的方式原创 2014-08-03 21:08:13 · 1364 阅读 · 0 评论 -
递归实现10进制转8进制,字符串数字互转,判断数组正逆向
1.通过递归的方式打印八进制,使用递归的方式一般会有if,else。2.将数字转字符串,字符串转数字//#define_CRT_SECURE_NO_WARNINGS //取消安全性检查,如果不加这一句的时候scanf将报错。#include#include /**************************原创 2014-07-28 00:26:45 · 1791 阅读 · 0 评论 -
指针数组,数组指针,函数指针,main函数实质,二重指针,函数指针作为参数,泛型函数
1、指针数组 数组里面的每个元素都是指针。 指针数组的案例如下: 易犯错误:2、数组指针 归根结底还是指针,只是取*的时候能够取出一整个数组出来。数组指针:(一个指针指向了数组,一般和二维数组搭配使用)。下面的(p+1)表示的是加过20个字符。 3、函数指针:在gcc编译的时候增原创 2014-07-13 23:20:42 · 1568 阅读 · 0 评论 -
C语言进行网站开发之cgi
安装Apach配置ApacheRuntime下面的过程中一直点击next配置CGI,放开配置:AddHandler cgi-script .cgi2.添加Option,截图3.编写CGI代码如下:#define_CRT_SECURE_NO_WARNINGS //取消安全检查#原创 2014-07-31 01:34:47 · 3150 阅读 · 0 评论 -
typedef,结构体,共用体,联合体
typedef的用途:封装数据类型,方便移植简化函数指针的定义结构体:不同类的型元素汇聚。(1)、在声明类型的同时定义变量:struct结构体名{ 成员列表}变量名列表; (2)、直接定义结构体类型变量struct{ 成员列表}变量名表列;原创 2014-07-13 23:07:50 · 4424 阅读 · 0 评论 -
什么是Pro*C/C++,嵌入式SQL,第一个pro*c程序,pro*c++,Makefile,Proc增删改查
1什么是Pro*C/C++1、通过在过程编程语言C/C++中嵌入SQL语句而开发出的应用程序2、什么是嵌入式SQL1、在通用编程语言中使用的SQL称为嵌入式SQL2、在SQL标准中定义了很多中语言的嵌入式SQL原创 2014-10-11 02:09:09 · 3985 阅读 · 0 评论 -
C语言文件操作函数的编写
编写文件操作的头文件/**************************************************************************Copyright(C) :2014-08-5 totoFilename :file.hAuthor :涂作权Versi原创 2014-08-12 19:44:19 · 1420 阅读 · 0 评论 -
【干货】国外程序员整理的 C++ 资源大全
关于 C++ 框架、库和资源的一些汇总列表,由 fffaraz发起和维护。内容包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。标准库C++ Standard Library:是一系列类和函数的集合,使用核心语言编写,也是C++ISO自身标准的一部分。Standard Template Library:标准模板库C POSIX转载 2014-10-24 14:27:29 · 2672 阅读 · 0 评论 -
结构体对齐,结构体深拷贝和浅拷贝
3.结构体对齐,结构体深拷贝和浅拷贝原创 2014-08-01 01:27:47 · 4098 阅读 · 1 评论 -
int *p,cons int *p,int const *p,int * const p,const int * const p,int const * const p的区别
加有const关键字的几种情况的辨析const修饰的代码含义(特点)等价性int *p = #1. 可以读自己2. 可以通过*p改自己3. 可以通过p = &data来看别人原创 2014-08-01 01:20:24 · 2181 阅读 · 2 评论 -
sprintf,求字符串长度
int sprintf( char *buffer,const char *format[,argument]...);buffer:Storage location for output存储位置format:Format-control string :格式化控制的字符串argument:Optional arguments :原创 2014-08-01 01:26:14 · 4883 阅读 · 0 评论 -
malloc,colloc,realloc内存分配,动态库,静态库的生成与调用
1.在main方法里面直接定义一个非常大的数组的时候,可能会出现栈溢出:错误代码演示:#include#includevoidmain(){ inta[1024 * 1024]; intnum = 100; system("pause");}错误截图:2.在定义数原创 2014-08-01 01:11:00 · 2616 阅读 · 0 评论 -
volatile,可变参数,memset,内联函数,宽字符窄字符,国际化,条件编译,预处理命令,define中##和#的区别,文件缓冲,位域
1.volatile:要求参数修改每次都从内存中的读取。这种情况要比普通运行的变量需要的时间长。#include#include#include voidmain(){ time_tstart,end; doubleres = 0; time(&start);原创 2014-08-05 21:47:59 · 2312 阅读 · 0 评论 -
内存四域,变量声明和定义,寄存器,c内嵌汇编,auto,堆栈,常量,静态变量
1.内存四大区域2.在程序中,变量的声明可以有多份,定义只能有一份3.寄存器在cpu里面,没有地址4.c语言内嵌汇编语言5.auto变量自动分配内存,自动释放内存。6、栈的大小由编译器决定修改栈的方式,右击项目à属性à配置属性à链接器à系统à堆栈保留大小7.卡死cpu,卡死内存的程序原创 2014-07-28 00:44:28 · 2460 阅读 · 2 评论 -
动态开辟指定数量的线程来查找动态开辟的数组中的1000000数据中的值
1、项目包结构array.h#ifndef_ARRAY_H_#define_ARRAY_H_ /************************************************************************//*初始化数组原创 2014-07-28 00:38:15 · 1742 阅读 · 0 评论 -
结构体大小求值
内存对齐概念,struct例子:struct stu{ char a; intb; char c; double d; char e;}取pack(n),n,取结构体中最大成员大小m,取两个小值k, k = m取每个成员大小p,依次同k比较,取小值q = k第二步当中依次取原创 2014-07-22 22:39:10 · 1163 阅读 · 0 评论 -
sizeof的使用
通过sizefo可以求出数据类型使用的字节数。语法:1、sizeof(数据类型变量名称); 2、sizeof(数据类型);#includevoid main(){ //字符类型 char charType ='c'; //可以通过siezeof数据类型的方式得到此种类型的数据的大小原创 2014-07-01 15:18:03 · 1011 阅读 · 0 评论 -
Linux下C编程入门(.h文件,.c文件,以及多文件调用的方式)
1、首先,以Ubuntu 64-bit操作系统下为例图中的sudo su表示的是快速进入到root管理员下。这里的密码默认的是安装后的Ubunto操作系统中自定义的用户名的密码,此处以用户toto,密码:123456为例2、在/demo目录下创建以下三个文件(看截图):注意:其中add.c的内容如下(通过vi编辑器编辑add.c):其中的add.h(用于声明同级目录下的原创 2014-06-26 23:47:36 · 12881 阅读 · 2 评论 -
1、打印二进制机器码,程序内存分析,大端序小端序,指针数组,数组指针,数组的三种访问方式,typedef,#if-0-#endif,求数组大小,括号表达式
1.打印二进制机器码(分别表示32位的和64位的)#include /*按照8位的长度打印一个数值*/void dis8bit(char val){ int bit = 8; while(bit--) { if(1 printf("1");原创 2014-07-22 22:31:33 · 1484 阅读 · 0 评论 -
Linux下C语言执行过程(预处理,编译,汇编,链接,执行)
1、C语言的执行过程包括5个步骤:分别是:预处理,编译,汇编,链接,执行第一步:编写C源代码,截图如下:2、预处理,命令为:gcc -E variable.c -o variable.i(这步的作用是文件的展开和宏替换),生成的文件类型是.i类型的。3、编译:命令为:gcc -S variable.i -o variable.s,这里的.s文件就成了会变语言,截图如下:4、原创 2014-06-29 22:37:55 · 2533 阅读 · 0 评论 -
文件类型,c语言文件读写,文件缓冲,文件打开方式,文件操作函数
文件类型分为:流文件和设备文件设备文件比如:VGA接口,串口,usb口,网口,串口,这些接口都被操作系统抽象成为了文件。 当我们写程序的时候默认已经帮我们打开了三个文件分别是: stdin:标准输入stdout:标准输出stderr:标准出错原创 2014-07-17 21:25:49 · 3983 阅读 · 0 评论 -
函数指针,堆栈
函数指针的特点定义指向函数的指针变量的一般形式为数据类型(*指针变量名)(函数参数列表);如int (*p)(int,int);注意:对于函数指针来说p+n,p++,p—等运算无意义。案例如下:#include#include intadd(inta,intb){returna +b原创 2014-07-11 01:50:01 · 1424 阅读 · 0 评论 -
数据类型,隐式类型转换
关于数据类型:1.常量也是有类型的常量数据大体分两类,一类是带点(实型,浮点型),一类是不带点叫整型。编译器对带点,通常默认为double,不带点通常编译为int2.对于数据 .2 默认分配其8个字节。 .2F/f 改默认存储为4个字节,12U,改默认为正数的表达范围。12L 改默认为L 关于隐式类型转换:原创 2014-07-22 22:03:51 · 1221 阅读 · 0 评论 -
define关键字的使用,以及宏函数的定义
define关键的作用是预定义好处是:预定义的值只要改变了,程序中只要是使用了预定义的部分就可以一改全改。截图如下:上面的部分程序仍然可以正常输出。原创 2014-06-29 22:47:40 · 4304 阅读 · 0 评论 -
c语言中函数(linux命令查看依赖类库),数组(内存存储是连续的内存空间),Linux下查看&a,&a[0],a之间的值,可变数组
1、查看一个c函数依赖的类的方式:原创 2014-07-04 00:55:05 · 2057 阅读 · 0 评论 -
递归实现10进制转8进制,字符串数字互转,判断数组正逆向
1.通过递归的方式打印八进制,使用递归的方式一般会有if,else。2.将数字转字符串,字符串转数字//#define_CRT_SECURE_NO_WARNINGS //取消安全性检查,如果不加这一句的时候scanf将报错。#include#include /**************************原创 2014-07-28 00:24:55 · 1466 阅读 · 0 评论 -
记事本中写c/c++程序在Windows下执行
1.在桌面新建一个1.c,内容如下:2.打开cmd命令行窗口,进入CodeBlock安装目录下的:E:\Installed\CodeBlocks\MinGW,然后执行mingwvars.bat3.进入1.c所在的目录:4.执行编译等动作5.接着使用VC的编译器进行执行代码。6.点击VS2013开发人员命令提原创 2014-07-28 00:03:46 · 7894 阅读 · 2 评论 -
二分查找(5种方式实现二分查找),栈
1、5种方式实现二分查找,案例结构:halfFind.h#ifndef_HALFFIND_#define_HALFFIND_ /************************************************************************//*初始化长度为L的数组原创 2014-07-28 00:33:27 · 2140 阅读 · 0 评论 -
单线程实现检索当当网泄露的1GB用户数据
新建项目dangdangusersearch2.编写头文件head.h#ifndef_HEAD_H_#define_HEAD_H_ #include //注意文件操作相关函数的头文件是stdio.h#include //为了使用system函数#include //字符原创 2014-08-01 01:20:02 · 2967 阅读 · 4 评论 -
动态数组,数组初始化,数组内存释放,向数组中添加一个元素,向数组中添加多个元素,数组打印,顺序查找,二分查找,查找数组并返回地址,冒泡排序,改变数组中某个元素的值,删除一个数值,删除所有,查找含有
1定义接口:Num.h#ifndef_NUM_H_#define_NUM_H_ #include#include /************************************************************************//*数组的结构体类型原创 2014-08-01 01:07:13 · 2559 阅读 · 0 评论 -
一维数组,二维数组,三维数组,数组与指针,结构体数组,通过改变指针类型改变访问数组的方式
打印数组中的每个元素,打印每个元素的地址:#include#include voidmain(void){ inta[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; for (int *p =a;p <a + 10;p++) //原创 2014-08-01 01:08:23 · 3072 阅读 · 1 评论 -
QQ窗口的控制,同步异步打开360网盘,控制360网盘窗口的移动
1.通过system启动飞秋进程的方式:2.Windows下杀死进程的方式是:taskkill /f/im QQ.exe,截图如下:3、控制360网盘的移动,打开等效果:#include#include#include /*********************************************原创 2014-07-28 00:20:05 · 1955 阅读 · 0 评论 -
C语言二分查找法(指针和数组实现)
/* * 编写一个函数,对一个已排序的整数表执行二分查找。 * 函数的输入包括各异指向表头的指针,表中的元素个数,以及待查找的数值。 * 函数的输出时一个指向满足查找要求的元素的指针,当未查找到要求的数值时,输出一个NULL指针 * 用两个版本实现,一个用的是数组小标,第二个用的是指针 * 他们均采用了不对称边界 * Copyright (c) 2012 LiMingAuthor:转载 2014-07-25 23:20:06 · 2465 阅读 · 0 评论