自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Steve_Abelieve

Don't worry too much about the ambiguous future, just make effort for explicit being present.

  • 博客(70)
  • 资源 (3)
  • 收藏
  • 关注

翻译 结构体对齐方式详解

结构体 对齐原因 1、平台原因(移植原因): 不是所有的硬件平台都能访问任意地址上的任意数据的; 某些硬件平台只能在某些地址处取某些特定类型的数据,否则抛出硬件异常。 2、性能原因:数据结构(尤其是栈)应该尽可能地在自然边界上对齐。 原因在于,为了访问未对齐的内存,处理器需要作两次内存访问;而对齐的内存访问仅需要一次访问。结构体内存对其规则: 1.第一个成员在与结构体变量偏移量为0的地

2016-11-29 21:53:28 1929 2

原创 实现一个bubble_sort函数,可以完成int ,float,char,string类型的排序

#include<stdio.h>#include<string.h>#include<assert.h>//在这里我们先演示int和字符串两中类型的冒泡排序void bubble_sort(void*data, int nums, int width, int(*cmp)(void*, void*));int int_cmp(void*num1, void*num2);int str_c

2016-11-29 17:14:22 2509

原创 编写itoa函数,该函数为itoi函数的逆函数。将一个整数转化为字符串的形式。

itoa函数 功 能: 把一整数转换为十进制字符串 用 法: void my_itoa(int n, char s[])思路: 整数转化为十进制字符串,首先,需要整除(n/=10)求余(n%10),再次我们考虑到正负问题,对于负数我们可以先求它的相反数的字符串后面再加上‘-’。 最后进行一次翻转,所有数字变为正序。实现://编写itoa函数,该函数为itoi函数的逆函数#include<s

2016-11-27 20:10:23 1682

原创 自身学习效率与结果的思考

体验: 1.书中的例题一个都看不懂,感觉之前所有的努力通通通都是0,到找学霸答疑解惑。在碰撞的情况下,交流经验。最终问题得到了迎刃而解。 2.人在学习的时候,有一种感觉叫做什么都会的样子,看起来很厉害,人越是自我感觉良好的时候,反而越是成长最慢的时刻。 3.将书中的例题敲了一遍之后,却发现自己的代码还是会有很多错误,明明一切感觉好那好,结果却是天壤之别。方式没有经过实践推敲的代码都是不可靠的,

2016-11-27 00:50:59 442

转载 关于回调函数

回调函数是应用程序提供给Windows系统DLL或其它DLL调用的函数,一般用于截获消息、获取系统信息或处理异步事件。应用程序把回调函数的地址指针告诉DLL,而DLL在适当的时候会调用该函数。回调函数必须遵守事先规定好的参数格式和传递方式,否则DLL一调用它就会引起程序或系统的崩溃。通常情况下,回调函数采用标准WindowsAPI的调用方式,即__stdcall,当然,DLL编制者可以自己定义调用方

2016-11-26 20:21:49 398

原创 【腾讯面试题】判断机器的大小端存储方式。

机器存储方式分为两种:大端和小端。地址分为:高低地址 数据分为:高地位举例;数字123, 3为该数据的低位 如果低位(3)存储在计算机的高地址,我们称之为大端模式,否则,我们称为小端模式。代码实现 方式一:#include<stdio.h>#include<windows.h>int checkSystem();int main(){ int ret = checkSystem(

2016-11-26 17:58:48 519

原创 每个程序员都应该具备的调试能力。

首先,调试是⼀个程序员最基本的技能,其重要性甚⾄超过学习⼀门语⾔。不会调试的程序员就意味着他即使会⼀门语⾔,却不能编制出任何好的软件。 VC/VS调试快捷键:F9 //设置断点和取消断点 F10 //开始调试//单步执⾏ F11 //进⼊函数内部 F5 //跳到断点处 F7 //编译 Ctrl + F10 //跳到光标处常见调用窗口: 查看内存,局部变量,监视,调用堆栈,线程,寄

2016-11-26 17:04:16 2699

翻译 修改itoa函数,使得该函数可以接受三个参数。其中第三个参数为最小字符宽度。

#include <stdio.h>#include <limits.h>void itoa(int n, char s[], int width);void reverse(char s[]);int main(void) { char buffer[20]; itoa(INT_MIN, buffer, 7); printf("Buffer:%s\n", buffer);

2016-11-24 11:23:41 1383

翻译 将整数n转化为以b为底的数,并将转化结果以字符的形式保存到字符串s中。

#include <stdlib.h>#include <stdio.h> void itob(int n, char s[], int b);void reverse(char s[]);int main(void) { char buffer[10]; int i; for ( i = 2; i <= 20; ++i ) { itob(255, b

2016-11-24 11:11:43 970

原创 Lunix环境下用main函数的参数实现一个简易参数

#include<stdio.h>int sub(int a,int b){return a-b;}int mydiv(int a,int b){if(0==b){printf("the divsor is zero!\n");return -1;}return a/b;}int add(int a,int b){return a+b;}int multi(int a,i

2016-11-24 00:47:44 428

翻译 改进itoi函数

#include <stdlib.h>#include <stdio.h>#include <limits.h>void itoa(int n, char s[]);void reverse(char s[]);int main(void) { char buffer[20]; printf("INT_MIN: %d\n", INT_MIN); itoa(INT_MIN,

2016-11-24 00:41:32 516

翻译 将字符串S1中任何与字符串S2中匹配的字符都删除,实现函数squeeze(s1,s2).

/* test driver */#include <stdio.h>#include <string.h>#include<windows.h>void squeeze2(char s1[], char s2[]);//定义buffer的原因是想输出的能够看一下前后元素变化。int main(void){ char *leftstr[] = //指针数组,它的一个数组元素为

2016-11-23 21:41:46 3249

翻译 编写hoti(s),把由十六进制数字组成的字符串(0x或0X)转化为与之等价的整形值。字符串中允许包含的数字为:0-9,a-f或A-F。

#include <stdio.h>#include <stdlib.h>#include<windows.h>/* Here's a helper function to get me around the problem of not* having strchr*///将字符c 传入函数,转化成相应的整形值,用到一个技巧。10+(i)/2,巧妙地将对应的大小写字母转换为同一个数。若为不

2016-11-23 19:12:13 1904

翻译 打印分别由signed和unsigned限定的char , short, int ,与long类型变量的取值范围。

由结果分析可知: 要打印类型取值范围时,需要调用limits.h头文件 打印: 引用 比特位个数: 大写类型_BIT 最大值: 大写类型_MAX 最小值 : 大写类型_MIN 若打印无符号最大值 U大写类型_MAX #include <stdio.h>#include <limits.h>int main ()

2016-11-23 18:02:17 3935

翻译 查找C语言中的基本语法错误,如圆括号,左括号,花括号不匹配等

版本一:#include <stdio.h>#define MAXLINE 1000 /* max input line size */char line[MAXLINE]; /*current input line*/int getline(void); /* taken from the KnR book. */intmain(){ int len=0; int t=0;

2016-11-23 00:46:17 4284 10

翻译 编写一个删除C语言源程序中的所有注释语句,要正确处理带引号的字符串和字符常量。

#include <stdio.h>#define MAXLINE 1000 /* max input line size */char line[MAXLINE]; /*current input line*/int getline(void); /* taken from the KnR book. */intmain(){ int in_comment,len; int in

2016-11-23 00:29:44 2179

翻译 把较长的输入行折成短一些的两行或多行,折行的位置在输入行的第n列之前的最后一个元素。

#include <stdio.h>#define MAXLINE 1000 /* max input line size */char line[MAXLINE]; /*current input line*/int getline(void); /* taken from the KnR book. */intmain(){ int t,len; int location,spa

2016-11-23 00:16:36 773

翻译 将输入的空格串替换为最少数量的制表符和空格。

#include <stdio.h>#define MAXLINE 1000 /* max input line size */#define TAB2SPACE 4 /* 4 spaces to a tab */char line[MAXLINE]; /*current input line*/int getline(void); /* taken from the KnR book. */

2016-11-23 00:02:30 525

翻译 将输入的制表符替换成适当数目的空格,使空格充满到下一个制表符终止的地方。

#include <stdio.h>#include <stdlib.h>#include <string.h>//最大缓冲区1024#define MAX_BUFFER 1024#define SPACE ' '#define TAB '\t'//计算空格数int CalculateNumberOfSpaces(int Offset, int Ta

2016-11-22 23:52:24 644

原创 将一个输入的字符串进行逆序

#include <stdio.h>#define MAX_LINE 1024//对输入的字符串进行处理末尾加'\0' void discardnewline(char s[]){ int i; for(i = 0; s[i] != '\0'; i++) { if(s[i] == '\n') s[i] = '\0'; }} //翻转字符串int rever

2016-11-22 01:52:30 1534

原创 11/22日习题课学习笔记

只有真正理解了知识,才能持久的掌握。以后的学习才会更加的轻松! 理解比当下记住更有效!实现了以下问题: 1.递归逆序打印字符串 2.main 函数输入多个命令号参数计算 3.冒泡排序 4.使一个数组前半部分为奇,后半部分为偶 5.杨氏矩阵中找一个数是否存在 6.一个字符串中查找第一个出现的字符#include <stdio.h>#include <assert.h>#include

2016-11-22 01:50:02 288

翻译 打印长度大于80个字符的所有输入行。

#include <stdio.h>#define MINLENGTH 81//读取缓冲区判断该输入是否为大于80个字符的那一行int readbuff(char *buffer) { size_t i = 0; int c; while (i < MINLENGTH) { c = getchar(); if (c == EOF) retur

2016-11-22 01:11:03 1154

翻译 打印各个字符出现频度的直方图

#include <stdio.h>/* NUM_CHARS should really be CHAR_MAX but K&R haven't covered that at this stage in the book */#define NUM_CHARS 256int main(void){ int c; long freqarr[NUM_CHARS + 1]; long th

2016-11-22 00:44:55 822

翻译 打印输入中单词长度的直方图,垂直方向的。折磨使我强大的一个程序!

#include <stdio.h>#include<windows.h>#define MAXWORDLEN 10 //宏定义最长数组元素个数int main(void){ int c; int inspace = 0; long lengtharr[MAXWORDLEN + 1]; int wordlen = 0; int firstletter

2016-11-22 00:33:39 1109 1

原创 以每行一个单词的形式打印其输入

getchar()获取并进行打印,遇见‘ ’,‘\t’,’\n’打印换行.#include<stdio.h> int main(void){ int state = 1; char ch; while ((ch = getchar()) != EOF) { if (ch == ' '||ch==',') {

2016-11-20 22:24:59 675

原创 查找一个字符串中,出现的第一个单身字符。/一个字符串中查找第一个只出现一次的字符。 //要求复杂度为O(N).

思路: 1.复杂度要求为O(1),要找出一个字符串中第一次只出现一次的字符,肯定需要逐个比较。 2.那既然要逐个比较,又要复杂度为O(1),怎么办呢?有了while(1) 一旦达到目的,跳出循环。 3.while(1)已经确定,很好。那一个字符串中的字符要进行逐个比较,比较是两个东西的事,那就需要两个指针指向不同的字符。很好。 4.两个进行比较,有几个这么情况:(1)相等(2)不相等 5

2016-11-20 20:36:20 958

原创 2. 有一个二维数组.----杨氏矩阵 。数组的每行从左到右是递增的,每列从上到下是递增的. 在这样的数组中查找一个数字是否存在。 时间复杂度小于O(N);

//2.//有一个二维数组.----杨氏矩阵//数组的每行从左到右是递增的,每列从上到下是递增的.//在这样的数组中查找一个数字是否存在。//时间复杂度小于O(N);#include<stdio.h>#include<windows.h>#define ROW 3#define COL 3int judge(int arr[ROW][COL], int value);int main(

2016-11-20 17:08:01 887

原创 //模拟strcpy //strncpy //strcat //strncat //strcmp //strncmp //memcpy //memmove

#include<stdio.h>#include<windows.h>#include<assert.h>//strcpychar* my_strcpy(char*dst,const char*src){ assert(dst); assert(src); char*ret = dst; while (*dst++ = *src++); *dst =

2016-11-19 23:12:31 304

原创 1.调整数组使奇数全部都位于偶数前面。

#include<stdio.h>#include<windows.h>int main(){ int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int b[10] = { 0 }; int start = 0; int n = sizeof(a) / sizeof(a[0]); int end = n - 1

2016-11-19 00:09:55 330

原创 将连续的多个空格用一个空格代替

//编写一个将输入复制到输出的程序,并将其中连续的多个空格用一个空格代替#include&lt;stdio.h&gt;#include&lt;windows.h&gt;int main(){ int c; while ((c = getchar()) != EOF) { if (c == ' ') { pu...

2016-11-18 02:34:18 1254

原创 单词计数 行数计数 字符计数

//单词计数//这里对单词的定义比较宽松,它是任何其中不包括空格,制表符或换行符的字符序列#include<stdio.h>#include<windows.h>int main(){ int c; int nl, nc, nw;//nl行数nc字符数nw单词数 int state; nl = nc = nw = 0; state = 1; w

2016-11-18 02:20:57 706 1

原创 将制表符\t和回退符\b以可见的方式显示出来

注意:用printf函数打印 因为getchar每次只接受一个字符,所以输入什么显示什么1.用printf函数显示//将制表符\t和回退符\b以可见的方式显示出来#include<stdio.h>int main(){ int c; while ((c = getchar())!=EOF) { if (c == '\\') {

2016-11-18 01:22:53 2246

原创 编写一个将输入复制到输出的程序,并将其中连续的多个空格用一个空格代替

//编写一个将输入复制到输出的程序,并将其中连续的多个空格用一个空格代替#include<stdio.h>#include<windows.h>int main(){ int c; while ((c = getchar()) != EOF) { if (c == ' ') { putchar(c);

2016-11-18 00:39:54 777

原创 C和指针待完事项【计算标准输入单词“the”出现的次数,输入的单词由一个或多个空白字符分离。】

//计算标准输入单词“the”出现的次数,输入的单词由一个或多个空白字符分离。#include<stdio.h>#include<string.h>#include<stdlib.h>char const whitespace[] = "\n\r\f\t\v";int main(){ char buffer[101]; int count; count = 0;

2016-11-17 02:44:39 357

原创 画函数栈帧。(esp/ebp/pc/eax call ret , arg )

源代码:#include<stdio.h>void fun(int a, int b){ int c = 0xcccccccc; printf("haha nishigehaoren");}int main(){ int a = 0xaaaaaaaa; int b = 0xbbbbbbbb; fun(a, b); printf("you shou

2016-11-17 02:14:08 1964

原创 实现字符串拷贝的七种方法

//字符串拷贝函数的n种做法 //方法一 void copy_string1(char from[],char to[]) { int i = 0; while (from[i]) { to[i] = from[i]; i++; } to[i] = ‘\0’; }方法二 void copy_string2

2016-11-16 02:27:29 4546

原创 【C语言】写冒泡排序可以排序一个整型数组。

//.写冒泡排序可以排序一个整型数组。#include<stdio.h>#include<windows.h>void sort(int array[],int len);int main(){ int i = 0; int array[] = { 9, 3, 6, 5, 8, 6, 7, 5, 6, 8, 2, 2, 3, 1, 2 }; int len = siz

2016-11-15 00:26:33 4933 3

原创 【C语言】模拟实现printf函数 可变参数列表的实战

模拟实现printf 看代码:// 打印时根据字符串所访问的值为‘%’时,开始进行判断类型。 //这块用switch结构判断‘%’下一个字符确定类型,若为‘d’ //则为整形,为‘s’为字符串#include<stdio.h>#include<windows.h>#include<stdarg.h>#include<assert.h>void my_printf(char*format

2016-11-14 23:38:33 604

原创 【C语言】用递归实现字符串逆序的曲折之路

先看一下简洁版的。 1.成功版#include<stdio.h> #include<windows.h>char s[1000];void reverse(char *s){ if (*s) { reverse(s+1); printf("%c", *s); } return; }int main(){ g

2016-11-14 00:52:29 2427 3

原创 【C语言】建立动态链表并输出链表

写一个函数建立一个有3名学生数据的单向动态链表//建立静态链表#include<stdio.h>#include<windows.h>#include<string.h>#include<malloc.h>#define LEN sizeof(struct Student)struct Student{ long num; float score; struct

2016-11-13 22:15:39 18102

C++知识点总结

C++核心知识点总结,涉及C++常考面试题,以及常用知识点梳理,最短的时间的得到质的突破,祝您成功!

2018-12-08

C语言核心知识点总结

包含了C语言核心知识点,以及常见面试题考法和总结

2017-02-22

比特科技与坚持信念者同行

比特科技,与坚持信念者同行!

2016-10-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除