C语言
L_listen
这个作者很懒,什么都没留下…
展开
-
关于两个变量交换的几种方法。
一、借助第三个变量#include <stdio.h>#include <stdlib.h>int main(){ int a = 2, b = 8, temp = 0; temp = a; a = b; b = temp; printf("a=%d b=%d\n", a, b); system("pause"); return 0;}二...原创 2017-04-07 23:37:56 · 350 阅读 · 0 评论 -
字符串函数的模拟实现
#include #include #include char *my_strchr( char *dest, const char src){ while (*dest++){ if (*dest == src) return dest; } return NULL;}int main(){ char arr[20] = "abcddddef"; char a原创 2017-09-16 10:28:58 · 239 阅读 · 0 评论 -
求解斐波那契数列的第n个数
斐波那契数列: 形如 1 2 3 5 8 13 21 ............一、递归求解#include #include int Fibonacci(int n){ int a = 1; int b = 2; if (n == 1) { return a; } else if (n == 2)原创 2017-09-07 20:16:04 · 1137 阅读 · 0 评论 -
一些关于链表的题
#ifndef __LINKLIST_H__#define __LINKLIST_H__#include #include #include #include typedef int DataType;typedef struct Node{ DataType data; struct Node* next;}Node ,*pNode ,*pList;typede原创 2017-09-07 20:10:22 · 258 阅读 · 0 评论 -
复杂链表的复制
复杂链表的复制过程如下图所示:#include #include #include #include typedef int DataType;typedef struct ComplexNode{ DataType data; struct ComplexNode* next; struct ComplexNode* random;}Compl原创 2017-09-07 19:32:58 · 201 阅读 · 0 评论 -
C语言,函数的调用过程(栈帧)
源程序:#include #include int Add(int x,int y){ int rec = 0; rec = x + y; return rec;}int main(){ int a = 2; int b = 3; int z = Add(a, b); printf("%d\n", z); system("pause"); return 0;}栈原创 2017-05-20 13:33:59 · 370 阅读 · 0 评论 -
有关结构体、位段的一些问题
结构体就是一个物体具有属性的集合,因此他的内部可以有许多的类型;那么他的大小是怎样计算的呢;需要知道结构体内存对其规则:1、第一个成员在与结构体变量偏移量为0的地址处。(偏移量 :与首地址的距离)2、其它成员变量要对齐到某个数字(对齐数)的整数倍的地址处//对齐数= 编辑器默认的一个对齐数 与 该成员大小的较小值。 vs中默认值为 8. liunx中默认值为 4.3、结构原创 2017-07-10 10:01:16 · 312 阅读 · 0 评论 -
关于数组方面的大小计算
在这些问题的核心是:只有数组名单独在sizeof内部时,才代表整个数组,别的地方数组名一般都代表数组首元素地址,&+数组名,代表整个数组。#include #include int main(){ int a[] = { 1, 2, 3, 4 }; printf("%d\n", sizeof(a));// 数组名a单独放在sizeof中代表整个数组 即 4*4=16 prin原创 2017-07-09 16:48:03 · 517 阅读 · 0 评论 -
判断当前编译器是大端存储还是小端存储
首先什么是大端存储和小段存储?大端字节序存储:数据的低字节序的内容放在高地址 高字节序的内容放在低地址小端字节序存储:数据的低字节序的内容放在低地址 高字节序的内容放在高地址就像这样怎么判断呢?有两种方法第一种是一般原创 2017-07-20 10:40:11 · 1065 阅读 · 0 评论 -
压缩字符串
问题:将"abbbbcccdddff"压缩为a4b3c3d2f 思路:首先计算出有几个不同的字符,再将每个字符的个数存在一个数组, 最后使用循环压缩,定义i和j,一个指向放的位置,一个指向放的内容;#include #include #include void compress(char *p){ char *cur = p; char *duff = p;原创 2017-07-20 10:05:31 · 330 阅读 · 0 评论 -
在计算机中输出一个整数奇数和偶数位
在计算机中输出一个整数奇数和偶数位#include #include int main(){ int num = 7; int i = 0; for (i = 30; i >= 0; i -= 2)//奇数 { printf("%d ", (num>>i) & 1); } printf("\n"); for (i = 31; i >= 0; i -= 2){原创 2017-04-19 18:41:42 · 1582 阅读 · 0 评论 -
在计算机中,输出一个整数二进制中1的个数.
一、 正数如何输出1的个数#include #include int main(){ int i = 7; int count = 0; while (i != 0){ if (i % 2 == 1) count++; i = i / 2;//除二相当于去掉了二进制中的一个1; } printf("%d\n", count); system("pause");原创 2017-04-14 20:50:04 · 499 阅读 · 0 评论 -
模拟实现memcpy,memmove,memset
模拟实现memcpy,memmove,memset原创 2017-11-30 18:41:28 · 233 阅读 · 0 评论