![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
文章平均质量分 66
poison_biti
这个作者很懒,什么都没留下…
展开
-
详述大端小端存储
大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;这和我们的阅读习惯一致。小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低。原创 2016-07-22 23:31:44 · 446 阅读 · 0 评论 -
strcpy和memcpy的区别
strcpy: strcpy是字符串的拷贝。strcpy函数原型: char* strcpy(char* dest, const char* src);模拟实现strcpy:char * strcpy(char * dest, const char * src) // 实现src到dest的复制{ if ((src == NULL) ||原创 2017-07-24 18:05:39 · 762 阅读 · 0 评论 -
动态库和静态库的区别
什么是库: 库通俗的说就是把这些常用函数的目标文件打包在一起,提供相应函数的接口,便于程序员使用。库是别人写好的现有的,成熟的,可以复用的代码,我们只需要知道其接口如何定义,便可以自如使用。 现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常。比如我们常使用的printf函数,就是c标准库提供的函数。我们在使用时只需要包含原创 2017-08-07 19:33:43 · 1130 阅读 · 0 评论 -
链表带环和相交的问题
判断两个链表是否相交?(不带环) (1)第一种方法:我们只需要遍历每条链表,把最后一个节点保存起来,然后判断这两条链表的最后一个节点是否相等,如果是一样的节点,那么这两个节点就一定相交。 (2)第二种方法:遍历两条链表,求出链表L1的链表长度为len1,链表L2的链表长度为len2,长度差为| len1 - len2 |,让长的链表先走长度差步,然后两个链表在从原创 2017-07-17 20:42:12 · 1062 阅读 · 0 评论 -
指针和数组——面试基础(1)
刚开始学习编程的时候总以为数组就是指针,指针就是数组,容易混淆。其实,数组和指针是有区别的。数组与指针的区别:数组:1、数组要么在静态存储区被创建(全局数组),要么在栈上被创建(局部数组)2、数组名对应着(不是指向)一块内存(大小已知),其地址与容量在生命周期内保持不变,只有数组内容 可以改变。指针:1、指针可以随时指向任意类型的内存块(不同类型可以通过强制类原创 2016-09-23 13:48:54 · 429 阅读 · 0 评论 -
字符数组的翻转
有一个字符数组"student a am i”,请将数组改为"i am a student"不可以用到库函数,所有函数必须自己编写"test.cpp”#define _CRT_SECURE_NO_WARNINGS 1#include using namespace std;#include void Reversal(char* start,ch原创 2016-07-21 01:16:20 · 552 阅读 · 0 评论 -
C++基础小程序——走向程序员的第一步
"Student.h"#pragma once#include void Swap1(int* num1,int* num2){ int tmp = *num1; *num1 = *num2; *num2 = tmp;}void Swap2(int* num1,int* num2){ *num1 = (*num1)*(*num2); *num2 = (*num1)/(*原创 2016-07-31 20:03:21 · 655 阅读 · 0 评论 -
字符串函数自定义
字符串函数(String processing function)也成字符串处理函数,指的是编程语言中用来进行字符串处理的函数,如C,pascal,Visual以及LotusScript中进行字符串拷贝,计算长度,字符查找等的函数。原创 2016-07-31 17:08:01 · 817 阅读 · 0 评论 -
棋盘游戏
简单的棋盘游戏,简单的三子棋玩法,和这个代码类似的话还可以写出五子棋等棋盘游戏原创 2016-07-19 20:04:43 · 586 阅读 · 0 评论 -
顺序表的基本操作——静态实现
"SeqList.h"#ifndef __SEQLIST_H__//防止重定义#define __SEQLIST_H__#include #include #include #include #define MAX 5typedef int DataType;//typedef语句后面要有一个分号;typedef struct SeqList{原创 2016-05-28 15:39:49 · 600 阅读 · 0 评论 -
单向链表的基本操作
"SListNode.h”#ifndef __SListNode_H__#define __SListNode_H__#pragma once //能够保证头文件只被编译一次#include #include #include typedef int DataType;typedef struct SListNode { DataType data;原创 2016-05-28 15:34:25 · 541 阅读 · 0 评论 -
通讯录——静态实现
"AddRess.h"#ifndef __ADDRESS_H__#define __ADDRESS_H__#include #include #include #include #define MAX 10 //这里我为了调试方便取了一个较小的数值enum OP{ EXIT = 0,//退出 ADD, //增加联系人 DEL,原创 2016-05-28 15:41:42 · 531 阅读 · 0 评论 -
注释转换
"CommentConvert.h"#ifndef __COMMENTCONVERT_H__#define __COMMENTCONVERT_H__#include #include #define INTFILE "intfile.c"#define OUTFILE "outfile.c"enum STATE{ NUL_STATE, C_STATE,原创 2016-05-28 15:48:12 · 497 阅读 · 0 评论 -
排序----冒泡排序的优化_选择排序_插入排序
"test.c"#define _CRT_SECURE_NO_WARNINGS 1#include "Sort.h"int main(){ int arr[] = {6,3,8,1,4,9,5,0,2,7}; int size = sizeof(arr)/sizeof(arr[0]); BubbingSort(arr,size); //SelectSort(ar原创 2016-06-01 21:39:18 · 710 阅读 · 0 评论 -
双向链表——基本操作
"test.c"#define _CRT_SECURE_NO_WARNINGS 1#include "DoubleSLishtNode.h"void Test1()//InitDSList PushBack PrintfDSList PopBack{ PDoubleSListNode pHead = NULL; InitDSList(&pHead); Pus原创 2016-06-02 13:43:23 · 580 阅读 · 0 评论 -
memcpy和memmove的区别
先看一个例子void test(){ int arr[] = {0,1, 2, 3, 4, 5, 6, 7, 8, 9}; size_t size = sizeof(arr)/sizeof(arr[0]); for (int i = 0;i < size;i++) { cout<<arr[i]<<" ";原创 2017-07-24 18:08:37 · 335 阅读 · 0 评论