C语言
沈二月
← ←
展开
-
英文句子逆序,各进制间转换,杨辉三角
1 、将welcome to nanjing 变成nanjing to welcome#include <stdio.h>#include <string.h>#define MAX_SIZE 1024void reverse_string(char *src,int len){ int i; char temp; for(i = 0;i < len / 2;i++) { temp = *(src + i); *(src + i)原创 2016-09-11 18:47:04 · 381 阅读 · 0 评论 -
几个常用函数的实现strcpy、 strncpy、 strncat 、 strcmp、 strlen
各种常用函数的实现#include <stdio.h>#define MAX_SIZE 1024char * my_strcpy(char *dest,char *src){ char *temp = dest; while(*dest != '\0') { *dest = *src; dest++; src++; } *dest = '\0'; return dest;}char * m原创 2016-09-12 21:45:51 · 404 阅读 · 0 评论 -
将welcome to nanjing 变成nanjing towelcome
#include <stdio.h>#include <string.h>#define MAX_SIZE 1024 void reverse_string(char *src,int len){ int i; char temp; for(i = 0;i < len / 2;i++) { temp = *(src + i); *(src + i) = *(src + len - 1 - i); *(src + len - 1 -原创 2016-09-13 21:03:17 · 501 阅读 · 0 评论 -
memcmp和memcpy
memcpy 编辑c和c++使用的内存拷贝函数,memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中。中文名 内存拷贝函数 外文名 memcpy 功 能 拷贝n个字节 返回值 指向dest的指针函数原型void *memcpy(void *dest, const void *src,size_t n);功能原创 2016-09-14 18:50:57 · 2038 阅读 · 0 评论 -
数组与指针(复习)
课前一题:#include int swap(int *p,int *q) //用指针指向a,b的地址{ int m; m= *q; *q = *p; *p = m; return 0;} int main(){ int a = 5; int b = 6; swap(&a,&b); //取a原创 2016-09-15 22:27:02 · 254 阅读 · 0 评论 -
C语言——黑白子交换——代码
#include <stdio.h>int number;print(int a[]){ int i; printf("No.%2d: \n",number++); printf(" "); for(i = 0; i <= 6; i++) { printf("|%c",a[i] == 1?'*' :(a[i] == 2 ?'@':'')); } printf("|\n原创 2016-09-25 22:27:32 · 1160 阅读 · 1 评论 -
整型与字符型相互转换——C语言
将字符型转换为整型:#include <stdio.h>#include <string.h> #define MAX_SIZE 100 int my_atoi(char *src){ int flag = 1; int result = 0; if(*src == '-') { flag = -1; src++; } while(*src != '\0') { if(*s原创 2016-09-28 20:13:30 · 2875 阅读 · 0 评论 -
数据结构1
一些基本概念和术语:数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合数据元素:是组成数据的,有一定意义的基本单位,在计算机中通常作为整体处理。也被称为记录数据项:一个护具元素可以有若干个数据项组成,是数据不可分割的最小单位数据对象:是性质相同的数据元素的集合,是数据的子集数据结构:是相互之间存在一种或多种或多种特定关系的数据元原创 2016-11-12 13:35:02 · 257 阅读 · 0 评论 -
字节、半字、字对齐方式详解
看到写的这篇文章对于对齐方式的理解蛮好的,因此和大家分享,不会或忘了的可以看一看!一、字节对齐基本概念 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 对齐的作原创 2016-11-16 12:23:03 · 1712 阅读 · 0 评论 -
C语言——使用scanf函数时需要注意的问题
转自:http://blog.csdn.NET/wayne92 scanf函数我曾经在这个函数上犯过不少错误,也看到别人犯过的错误,记下来,提醒自己不要重蹈覆辙了。如果对你有用,那就更好了:)如果你发现文章中有错误,欢迎你不吝赐 教。希望和大家一起学习!曾经错的几个地方:(xpsp2,vc6.0环境下)1.空白符问题[cpp] view p转载 2016-12-01 18:21:34 · 8535 阅读 · 1 评论 -
测量各种数据类型的长度以及typedf关键字对数据类型的作用
32位处理器存储单位 bit (位) 字节 = 8 bit 半字 = 2 个字节 = 16 bit 字 = 4 个字节 = 32 bit 字节长度: 变量在内存中所占的存储空间的长度 数据类型 字节长度 char 1 short 2 int 4 long 4 float 4 double 8 指针 4 指针类型为什么是4个字节? 因为所有原创 2016-12-07 12:53:58 · 499 阅读 · 0 评论 -
复合数据类型
结构体作用: 封装数据(把多种不同的数据类型放在一起)注意: 一般放在全局;分号不能省略。 结构体变量用点访问 结构体指针用->访问初始化: 静态初始化 动态初始化使用注意事项: 给结构体中的数组成员赋值时,不能直接将字符串赋给数组名,可以使用strcpy函数 给结构体中的指针变量成员赋值时,要先给指针分配空间,否则它会使一个野指针 静态初始化即在定义的时候直接赋值结构体数组的初始化:使用for循环来完成结构体中的对齐方式: 字对齐和半字对齐原创 2016-07-26 09:46:03 · 445 阅读 · 0 评论 -
嵌入式开发中为什么选择C语言?
关于为何在嵌入式开发中选择C语言,我将从嵌入式开发的定义,C语言的特点,及嵌入式系统与C语言的联系几方面来作解释。什么是嵌入式开发: 嵌入式开发就是指在嵌入式操作系统下进行开发,一般常用的系统有WinCE,linux,android等。另外,用c,c++或汇编开发;用高级处理器,arm7,arm9,arm11,powerpc,mips,mipsel等,或加上操作系统也属于嵌入式的开发。嵌入式系统和C语言的联系: 操作系统(包括内核、驱动等)是使用C语言和汇编编写的,Windo原创 2016-07-10 20:17:24 · 6404 阅读 · 0 评论 -
关键字:register static extern const typedef volatile
关键字register关键字是用来请求编译器尽可能将变量的值保存在CPU内部寄存器中,这样省去了CPU从内存中抓取数据的时间,从而提高程序的运行效率。尽可能:CPU内部寄存器的内存有限,不可能把所有变量都存放在寄存器中变量:通常用registr来修饰频繁被访问的变量。保存在寄存器中:计算机的三大组成部分,即CPU、硬件和内存。CPU从内存中抓取数据,内存里面执行的程序最后会保存在硬盘里。运算器、控制器和存储器是CPU的三大组成部分。当对一个变量频繁被读写时,需要反复访问内存,从而花费大原创 2016-07-25 14:23:37 · 453 阅读 · 0 评论 -
C 语言左右法则
右左法则:首先从最里面的圆括号看起,然后往右看,再往左看。每当遇到圆括号时,就应该掉转阅读方向。一旦解析完圆括号里面所有的东西,就跳出圆括号。重复这个过程直到整个声明解析完毕。 笔者要对这个法则进行一个小小的修正,应该是从未定义的标识符开始阅读,而不是从括号读起,之所以是未定义的标识符,是因为一个声明里面可能有多个标识符,但未定义的标识符只会有一个。 现在通过一些例子来讨论右左法则的应用,先从最简单的开始,逐步加深: int (*func)(int *p); 首先找到那个未定转载 2016-07-11 10:06:28 · 580 阅读 · 0 评论 -
函数的相关知识及函数指针
函数:1、提高代码复用性2、提高代码维护性(具有独立的功能,尽量少的调用其他功能)3、讲究迭代开发的方式函数的三要素:函数名,函数参数,函数返回值1、函数名(自注释性——提高可读性)2、函数形参声明函数(好的编码习惯)先写函数调用(函数名是一个指针常量,保存函数存放的地址)(1)通过函数名找到函数的入口地址;(2)给形参分配内存空间;(3)传值:把实参变量对应空间的值传给形参;传值时:读(不修改)实参变量对应内存空间的值时,传实参变量名写(修改)实参变量对应内存空间的值时,传原创 2016-07-25 11:15:02 · 386 阅读 · 0 评论 -
如何用C语言实现面向对象
C语言是一种结构化的编程语言,以模块化功能和处理过程设计为主,从而实现数据与代码分隔。面向对象的编程语言,核心是类,类用来创造对象的模板,类的三要素为:封装,继承,多态。C语言本身对面向对象的支持很弱,但可以通过一些技巧来实现,从面向对象的思想上找一些对应的实现方法。面向对象: C语言:类的实现 ———— 结构体封装性 ————原创 2016-07-20 19:11:54 · 1426 阅读 · 0 评论 -
如何避免野指针(详解)
野指针:随机指向内存中的一个地址,对于这个地址不一定有访问权,会导致内存泄漏(访问了已经释放的内存,或没有访问权限)。下面这个程序很好的避免了野指针:#include #include //#define NULL (void *)0 //(void *0) 是0地址,是不允许操作,不允许访问的。#define MAX_SIZE sizeof(char) * 100//memse原创 2016-07-18 20:04:55 · 4393 阅读 · 0 评论 -
指针数组和数组指针的区别
指针数组:用于存储指针的数组,也就是数组元素都是指针数组指针:指向数组的指针下面举例说明:int* a[4] 指针数组 表示数组a中的元素都为int型指针 元素表示:*a[i] *(a[i])是一样的,因为[]优先级高于*int (*a)[4] 数组指针 表示:指向数组a的指针元素表示:(*a)[i] int (*p原创 2016-07-18 19:11:54 · 253 阅读 · 0 评论 -
指针的相关知识及注意点(如何避免野指针)
指针是一个变量,其中存放着地址。首先来理解一下地址如下:int num = 5;(0x0000 0005)再来看指针:int * p = #int **pp = &p;这里有两个概念需要理解一下:指向的内存空间,对应的内存空间。例如: num++:对num对应的内存空间的值+1;也就是5+1。 p++:对p对应的内存空间的值+1;即0x1000+1-->0x1001。 (*p)++:根据p对应的内存空间的地址,找到其对应的内存空间;对p指向的内存空间进行操作;即5+1原创 2016-07-15 20:39:44 · 458 阅读 · 0 评论 -
memcpy与strcpy区别,memcmp与strcmp的区别
memcpy c和c++使用的内存拷贝函数,memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中。中文名 内存拷贝函数 外文名 memcpy 功能 拷贝n个字节 返回值 指向dest的指针函数原型void *memcpy(void *dest, const void *src, size_t n);功能从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中所需头文件C语言:#includ原创 2016-07-15 19:45:36 · 12770 阅读 · 0 评论 -
Training2:位操作训练
Training2:位操作训练1.题目:请编写一个c函数,该函数给出一个字节中被置为1的位的个数#include #include int func(int num){int p;int i = 0;int count = 0;;for(i = 0;i {p = num % 2;num = num / 2;if(p == 1)count ++;原创 2016-07-14 10:03:48 · 569 阅读 · 0 评论 -
面向过程(面向结构)与面向对象的区别
面向结构(过程)的特点:处理具体细微事物的执行效率高,追求实现的过程;(C语言为典型的面向过程的语言。具体的C语言的特点我在《嵌入式开发为什么选择C语言》一文中作了 详细解释) 面向对象的特点:(多态、封装、继承)代码复用性:指的是可以直接调用;代码扩展性:增加新功能时,不修改原来的代码;原创 2016-07-11 20:05:28 · 8138 阅读 · 1 评论 -
约瑟夫环
约瑟夫环约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。通常解决这类问题时我们把编号从0~n-1,最后结果+1即为原问题的解。C语言递归法:原创 2016-12-13 22:38:27 · 538 阅读 · 0 评论