整形数据在内存中的存储

整型数据在内存中的存储,是一个值得细细体会的问题,千万不要把它忽视了!!!下面我们来详细谈一谈: 什么是整形? 整形有:char short int long long long 各种整形又分为:signed (有符号型,没有写 signed 这个关键字的类型默认是有符号类型:例如上一行的类型都是有符号类型) unsigned(无符号类型) 各种类型的范围: 认识类型范围前先看看两个密诀:1000 0000 1后面7个0,则表示:2的7 次方 即128 0111 1111 0后面7个1,则表示
分类: 其他 发布时间: 11-30 22:56 阅读次数: 0

三字棋游戏的简单实现

三字棋游戏:玩家与电脑对抗,棋盘是3*3的小方格,当任一行或任一列,或者正对角线,或者副对角线棋子个数为三或棋子类型完全一致,则该把棋局就赢了,但是如果棋盘满了有没有赢,则为平局。下面我们就开始我们的程序设计: chess.h 头文件(用于函数的声明) chess.c 源文件(用于函数的定义) main.c 源文件(用于主函数的实现) 代码如下: chess.h 头文件(用于函数的声明) #ifndef __CHESS_H_ #define __CHESS_H_ #include <std
分类: 其他 发布时间: 11-30 22:55 阅读次数: 0

浮点数的内存存储

今天我们来探讨一下浮点数的内存存存储! 先来看一个例子: int main() { int a = 9; float *p = (float*)&a; printf("%d\n", a);//以有符号十进制整形方式打印 printf("%f\n", *p);//以有符号十进制浮点数(float)方式打印 *p = 9.0; printf("%d\n", a);//以有符号十进制整形方式打印 printf("%f\n", *p);//以有符号十进制浮点数(float)方式打印
分类: 其他 发布时间: 11-30 22:55 阅读次数: 0

C语言之 分支语句与循环语句粗见

今天让我们走进C语言中的两个基本语句的世界中,C语言呢,一共有两大种语句,即分支语句和循环语句,他们的身影几乎遍插整个编程界,是最最基本的语法知识。所以不可小看他们!接下来先看看分支语句: 分支语句(选择语句) 分支语句又称选择语句,那么先看看语句是什么? 语句:以分号(;)结尾的一条命令行代码,例如:int i = 0 ; 知道了语句,那么现在我们来看看分支语句分为哪几类:分支语句有两类 if 语句 switch语句 举个 if 语句的例子: if (1 == i) { print
分类: 其他 发布时间: 11-30 22:55 阅读次数: 0

函数与数组的相关重点草图

调用函数,就要在栈上开辟空间,那么现在我们来演示一下函数递归在内存中的路线:(函数递归也是自己调用自己的过程) 数组初始化:数组在定义的时候整体初始化【但是不能整体赋值】 数组的一般知识总结: 1 数组创建,[ ] 中必须放常量,不能放变量 2 数组的初始化,是指创建数组的同时赋给数组一些合理的初始值 3 数组在创建的时候如果想不指定数组的确定的大小就得初始化。数组的元素个数根据初始化的内容来确定 4 char arr1[] = "abc"; 数组里面有: 'a' 'b' 'c' '\0' 【
分类: 其他 发布时间: 11-30 22:55 阅读次数: 0

指针相关笔试题

//笔试1 #include <stdio.h> #include <windows.h> int main() {     int a[5] = { 1, 2, 3, 4, 5 };     int *ptr = (int *)(&a + 1);     printf("%d,%d", *(a + 1), *(ptr - 1));     system("pause");     return 0; } //笔试2 //由于还没学习结构体,这里告知结构体的大小是20个字节 struct
分类: 其他 发布时间: 11-30 22:54 阅读次数: 0

回调函数浅析

回调函数的使用举例: //字符排序 #include <stdio.h> #include <windows.h> #include <stdlib.h> int char_cmp(const void *p1, const void *p2) { return (*(char *)p1 > *(char *)p2); } int main() { char arr[] = { 'a', 'd', 'c', 'b' }; qsort(arr, sizeof(arr)/sizeof(
分类: 其他 发布时间: 11-30 22:54 阅读次数: 0

linux中Access Modify Change的时间意义浅析

首先创建一个文件:mkdir test 接着输入命令:stat test 可以看到这样的场景: 可以看到上面最下面有三行时间,他们是什么意思呢? 总结: 1当仅读取或访问文件时,access time 改变,而modify time ,change time 不会变。 2当修改文件内容时,modify time ,change time 会改变,access time 不一定改变。 3当修改文件权限属性时,change time 改变,而access time ,modify time 不会变
分类: 其他 发布时间: 11-30 22:54 阅读次数: 0

linux的根目录下各种目录里有什么东西

bin 存放常用命令 boot 存放引导相关的文件 dev:设备文件 etc:存放与配置相关的文件 home 普通用户的工作目录 lib 系统最基本的动态链接共享库 lost+found:系统非正常关机时留下的文件 media:存放可移除设备,如:软盘、光盘 mnt 默认的挂载软驱和光驱的目录 opt:给源码安装软件时选择的安装目录位置 proc:虚拟目录,是内存的映射 root root用户的工作目录 sbin 要具有一定的权限才能使用的命令 selinux:加固操作系统,提高操作系统的安全
分类: 其他 发布时间: 11-30 22:54 阅读次数: 0

单链表的增删查找操作

#pragma once #include <assert.h> #include <stdlib.h> #include <stdio.h> typedef int DataType; typedef struct SLitsNode { DataType data; struct SLitsNode *next; }SListNode; //初始化、销毁 void ListInit(SListNode **ppFirst) { assert(ppFirst); *ppFirst
分类: 其他 发布时间: 11-30 22:53 阅读次数: 0

数据结构面试题oj练习

题 oj 链接:https://leetcode-cn.com/problems/remove-linked-list-elements/description/ /** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ struct ListNode* removeElements(struct ListNode
分类: 其他 发布时间: 11-30 22:53 阅读次数: 0

带头循环双向链表的增删查找操作

#pragma once #include <assert.h> #include <stdlib.h> #include <stdio.h> //双向带头循环 链表(如果要改变链表的头指针指向,就要传入二级指针) typedef int DataType; typedef struct DListNode { DataType data; struct DListNode *prev; struct DListNode *next; }DListNode; //初始化
分类: 其他 发布时间: 11-30 22:53 阅读次数: 0

静态顺序表增删查找操作

#pragma once #include <stdio.h> #include <assert.h> #include <string.h> #include <windows.h> //#ifndef __SeqList_H__ //#define __SeqList_H__ // //#endif //__SeqList_H__ //数据结构是抽象类型 //数据本身不仅仅是数字 typedef int DataType; #define MAX_SIZE 100 typed
分类: 其他 发布时间: 11-30 22:53 阅读次数: 0

动态顺序表相关操作

#pragma once #include <stdio.h> #include <assert.h> #include <windows.h> #include <stdlib.h> typedef int DataType; #define INIT_CAPACITY 3 typedef struct SeqListD { DataType *parray; int capazcity;//顺序表的容量 int size; }SeqListD; //初始化 void Se
分类: 其他 发布时间: 11-30 22:52 阅读次数: 0

栈和队列相关操作

栈的相关操作: #pragma once typedef int StackTypeData; #define MAX_SIZE 100 typedef struct Stack { StackTypeData array[MAX_SIZE]; int top;//栈的元素个数 }Stack; //初始化、销毁 //增(只能从栈顶)删(只能删除栈顶)查(只能查看栈顶元素) //个数、是否空、是否满 //增->顺序表的尾插 //删->顺序表的尾删 void StackInit(
分类: 其他 发布时间: 11-30 22:52 阅读次数: 0

进程初识

进程 我们都知道知道程序是为了完成某种任务而设计的软件,比如OpenOffice是程序。什么是进程呢?进程就是运行中的程序。一个运行着 的程序,可能有多个进程。举个例子,如果说程序是一个武林秘籍的话,进程就是它的每一招一式。所以进程就是一个运行的程序。同 一个程序可以执行多次,每次都可以在内存中开辟独立的空间来装载,从而产生多个进程。不同的进程还可以拥有各自独立的IO接口。 操作系统的一个重要功能就是为进程提供方便,比如说为进程分配内存空间,管理进程的相关信息等等现在我们先来看看我们自己电脑
分类: 其他 发布时间: 11-30 22:52 阅读次数: 0

七种基本排序思考

//插排 //稳定 //时间复杂度【最差情况】:O(n^2) //空间复杂度:O(1) void InsertSort(int array[], int size) { int key; int i, j; for (i = 1; i < size; i++){ key = array[i]; for (j = i - 1; j >= 0; j--){ if (key >= array[j]){ break; } else{ array[j +
分类: 其他 发布时间: 11-30 22:52 阅读次数: 0

系统调用接口

1、系统调用 操作系统作为系统软件,它的任务是为用户的应用程序提供良好的运行环境。因此,由操作系统内核提供一系列内核函数,通过一组称为系统调用的接口提供给用户使用。系统调用的作用是把应用程序的请求传递给系统内核,然后调用相应的内核函数完成所需的处理,最终将处理结果返回给应用程序。因此,系统调用是应用程序和系统内核之间的接口。Linux系统调用,包含了大部分常用的系统调用和由系统调用派生出的函数。 系统调用接口是由一系列系统调用函数构成的特殊的接口。程序员或应用程序通过该特殊的接口取得操作系统内
分类: 其他 发布时间: 11-30 22:51 阅读次数: 0

Linux服务器---安装mysql

安装mysql1、检测是否已安装mysql[root@localhostbin]#rpm-qa|grepmysqlmysql-libs-5.1.71-1.el6.i686[root@localhostbin]2、安装mysql和mysql-server[root@localhostbin]#yuminstall-ymysql[root@localhostbin]#yuminstall-ymysql
分类: 企业开发 发布时间: 11-30 22:50 阅读次数: 0

使用批处理新建批处理,用批处理进行复制为日期文件夹

@echooffcolor0atitle建立以日期命名的批处理seta=%time:=0%setb=%a::=%setc=%b:~0,6%setd=新建批处理(%date:~2,2%%date:~5,2%%date:~8,2%-%c%).batecho@echooff>%d%startnotepad.exe"%d%"echod|xcopy/e/y/cd:*.*f:\&qu
分类: 企业开发 发布时间: 11-30 22:50 阅读次数: 0