c总结
文章平均质量分 64
布衣僧
助人如助己,还人心愿,如还自己心愿。
展开
-
c语言中 指针和一维数组 简要总结
今天把指针和一维数组的知识,做一个简要的总结。 int liv_arr[] = {11, 22, 33, 44, 55}; int * lpv_sum = liv_arr; printf("liv_arr[2]=%d *(lpv_sum+2)=%d *(liv_arr+2)=%d\n", liv_arr[2], *(lpv_sum+2), *(liv_arr+2)); prin原创 2015-08-09 19:23:28 · 842 阅读 · 0 评论 -
c总结2 ---自己实现字符串的拷贝(指针学习1)
我们在使用c的时候,如果要实现字符串的拷贝,可能会用到strcpy函数。那么我们能否自己实现一下呢?我们借助指针来实现该函数#include "stdafx.h"#include #include void myCopy(char *from, char* to){ //当*from为 '\0'的时候结束 每次执行语句后 *from *to自增 将指针加1 for (原创 2015-10-17 14:09:54 · 931 阅读 · 0 评论 -
c总结3 --- C语言中的strstr函数(指针学习2)
当自己在学习这个函数的时候很纠结,现在将自己总结的整理如下:strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回str2在str1中首次出现的地址;否则,返回NULL。int main(void){ char *str1 = "Borland International", *str2 = "nation", *ptr; ptr原创 2015-10-17 15:16:38 · 887 阅读 · 0 评论 -
c总结8 --- 二级指针使用三种模型之一(二级指针1)
对于二级指针,常常会把自己绕晕了。二级指针,可以简单的理解为,就是一个二维数组。现在总结下二级指针的模型形式1、第一种模型 char buf[10][30]= { "eeee", "ffff", "aas", "111","cccc" };2、第二种模型 char *arr[] = {"dfe","sss","abc","eee"};3、第三种模型 char **pArr原创 2015-10-22 08:50:47 · 697 阅读 · 0 评论 -
c总结1 ---c中给变量赋值
c语言中给变量赋值一共有两种方式:直接赋值和间接赋值。1、直接赋值:就是将数值直接赋给变量 比较简单如下: 例如: int main() { int a; //声明一个变量 a = 100; //给变量a进行赋值 ---此时就是直接赋值 printf("a = %d \n", a); // a = 100 return 0;原创 2015-10-16 21:34:23 · 5212 阅读 · 0 评论 -
动态链接库(DLL)总结---动态链接库的创建与使用(5)
我们将 动态链接库(DLL)总结---静态链接库的创建与使用(4)中的工程修改下属性即可,如下图: 编写代码。 编辑Lib1.h文件 **extern "C" __declspec(dllexport) void Msg();** Lib1.cpp文件内容不变,然后重新生成即可。调用Dll1)隐式链接将生成的lib文件和dll文件拷贝到要测试项目目录下。测试代码如下:原创 2015-11-30 19:40:05 · 582 阅读 · 0 评论 -
动态链接库(DLL)总结---简单使用(2)
接着《动态链接库(DLL)总结---简单使用(1)》我们来完善dll项目。为什么说是要完善DLL项目呢?在实际开发中,一个DLL实现后,通常会交给客户程序,以便后者能够调用。客户程序需要知道DLL导出了那些函数和函数原型,有人说我们在上篇文章是知道的啊,之所以知道是因为程序都是我们自己写的。如果我们自己使用别人编写的dll呢?那么我们可以使用一些工具来知道导出了那些函数和函数的原型,但是这样就不是原创 2015-11-30 19:29:40 · 870 阅读 · 0 评论 -
动态链接库(DLL)总结---简单使用(1)
DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型。我们在使用Window API开的时候, 其中有3个最重要的DLL。Kernel32.dll 用于管理内存、进程和线程函数。例如:CreateThread函数User32.dll 用于执行用户界面任务的函数。例如:CreateWindow函数GDI原创 2015-10-31 15:23:45 · 958 阅读 · 0 评论 -
动态链接库(DLL)总结---静态链接库的创建与使用(4)
静态库(static library)将函数和数据编译进入到一个二进制文件(.lib)中,当链接的时候,会将函数和数据复制到可执行文件中去。发布的时候,不需要该lib文件。1、使用vs2013建立一个静态库的工程,StaticDllDemo新建一个 win32项目,名称定义为 StaticDllDemo,在下一步中选择 “静态库”,然后点击完成即可。我们查看该项目属性,会发现在 “原创 2015-10-31 19:03:50 · 526 阅读 · 0 评论 -
c总结4 --- 字符串逆序(指针学习3)
学完了查找之后,我们来学习下字符串的逆序,因为在很多的时候我们都需要使用这样的功能。比如我们现在又一个字符串 “abcdef”,要想实现逆序,其实就是将a和f、 b和e、c和d的位置进行调换即可,我们可以借助两个指针,分别指向a和f所在的位置,然后让他们交换,知道前面的指针比后面的指针位置还小的时候结束。直接上代码/****************************原创 2015-10-19 10:15:20 · 854 阅读 · 0 评论 -
c总结5 --- 去除两边空格(空白字符)(指针学习4)
在输入或输出字符串的时候,我们需要对现有的字符串进行简单的处理,比如去除字符串两的空格(空白字符),我们定义两个下标,分别代表开始下标和最后下标(\0前位置,不是\0),不断的循环 前面的下标自加,后面的下标自减,直到遇到非空白字符终止。此时,我们就可以知道两个关键要素:1、有效字符的长度;2、有效字符的首地址我们可以计算出来有效字符是多少, 比如前面的下标为2, 后面的下标为4 此原创 2015-10-19 10:24:56 · 1557 阅读 · 0 评论 -
c总结6 --- 在字符串键值对中提取Value(指针学习5)
我们在开发的时候,还有可能会在一段含有键值对中的字符串中进行查找键对应得值,比如:姓名=张三 等等。这样我们就需要借助今天的总结进行操作。 我们需要判断要查找的键是否存在,只有存在的情况下,后面的操作才有意义。 找到键后要 = 字符 然后就可以获取到,我们需要的键值了 备注:考虑到要操作的字符串的含有空白字符的情况,所以我们需要借助上篇总结。原创 2015-10-19 10:31:24 · 1222 阅读 · 0 评论 -
C语言的执行过程
对于C语言的执行过程大家都是知道的,1、编辑 2、编译3、链接 4、执行。不过存在一些问题,总结如下:在编译的过程的时候,主要是对语法、词法的检测,代码优化,分配全局变量、静态变量内存等操作。还有就是会检测函数是否定义,如果没有定义,则检测是否声明。如果没有定义,也声明就会抱错。在链接的过程中,主要是:解析其他文件中的函数引用或其他引用; 解析库函数。原创 2015-08-10 17:01:18 · 1086 阅读 · 0 评论 -
程序如何排除
我们在编写代码出现错误是正常的,但是我们如何排除错误?错误大概分为两类,一类是语法错误,一类是逻辑错误。对于语法错误,我们使用的大多数编辑器都会给与提示。例如:printf("heloo") //么有加分号。逻辑错误,就比较纠结。例如:int * pNum = NULL; printf("%d \n", *pNum); // 逻辑错误原创 2015-08-10 18:25:55 · 550 阅读 · 0 评论 -
C语言中的#define用法总结
1、宏定义格式:#define 标识符(也称为宏名) 替换列表例如; #define PI 3.14 以上代码就是定义了一个宏。 宏的名称为PI, 我们在使用的时候,会在编译预处理时,将代码中的PI替换为3.14注意: 没有 分号 printf("pi = %f \n", PI); //结果为 pi = 3.14 其实原创 2015-08-12 16:51:55 · 3174 阅读 · 0 评论 -
C语言中的const
C语言的中的const,代表的含义是”不可改变的变量“,或者可以成为”伪常量“ C++中 const,被称为”一个有类型描述的常量“ const int liv_num = 10; liv_num = 18; //error 因为liv_num 被const修饰不可被直接赋值那么,我为什么说是”伪常量“?我们知道在c中给变量赋值,有两种方式:一种就是直接赋原创 2015-08-12 08:41:33 · 806 阅读 · 0 评论 -
编程中的数学问题
1、计算数字的个数 ----- 使用除法---除10例如:要计算数字1234的个数int nNum = 1234;//用于记录数字的个数int nSum = 0; //循环遍历 直到当nNum为0的时候终止循环while(nNum){ nNum = nNum / 10; //或者简写为 nNum/=10; i++;} 2、不断的获取数原创 2015-09-08 18:07:01 · 950 阅读 · 0 评论 -
c总结10--- 二级指针使用三种模型之三(二级指针3)
第三种模型说起来较前两者有一定的复杂,先上代码后上图。/************************************************************************//* 第三种模型 1、先定义一个动态空间,大小为行数 2、再创建新的数组 并挂载在1中数组的每一个位置/***************************************原创 2015-10-22 09:18:29 · 536 阅读 · 0 评论 -
c总结11 -- 多字节与宽字节间的转换(wchar_t与char转换)
在学习的时候,宽字节和多字节直接的转换经常会用到,还会用到CString\ LPWSTR\TCHAR CHAR\LPSTR,所以就自己写了一个类。方便自己使用。 MyChar.h文件/************************************************************************//* wchar_t与char类型间的转换/* C原创 2015-11-11 10:47:40 · 1446 阅读 · 0 评论 -
c总结7 --- 在字符串键值对中提取Value(指针学习6)
在c语言中const问题,前面提到过,做为总结,我还是在说下;1. 指针变量和它所指向的内存空间变量,是两个不同的概念. 2. 看const 是放在*的左边还是右边 看const是修饰指针变量,还是修饰所指向的内存空变量下面的代码简单的介绍了 const存在的三种情况,代码如下:#include #include #include //指针原创 2015-10-19 10:35:16 · 788 阅读 · 0 评论 -
c总结9--- 二级指针使用三种模型之二(二级指针2)
我们来学习下,第二种模型, char *arr[] = {"dfe","sss","abc","eee"}; 上代码:int main(){ int i = 0, j = 0; char * tmp = NULL; //临时变量 用于参与排序使用 ① //二级指针的第一种模型 //首先是一个数组 ----指针数组---数组中的每一个元素是指针 []的优先级比较高原创 2015-10-22 08:57:03 · 485 阅读 · 0 评论 -
动态链接库(DLL)总结---解决名称粉碎问题(3)
名称粉碎:C++是支持函数重载,对于多个函数来说,其函数的名称是一样的,为了加以区分,在编译链接时,c++会按照自己的规则篡改函数的名称。这一过程成为“名称粉碎”,也有的称为“名称改编”。不同的编辑器会采用不同的编辑器进行改编。我们使用LoadPE工具查看动态链接库(DLL)总结---简单使用(1)中生成的dll,查看下名称粉碎是个什么效果。操作步骤如下:1)加载要查看的dll原创 2015-10-31 16:38:47 · 1462 阅读 · 1 评论