原创 C 語言通訊錄(結構體)

#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<malloc.h> #include<string.h> #define

原创 有一個字符數組的內容爲:"student a am i", 請你將數組的內容改爲"i am a student". 要求: 不能使用庫函數。 只能開闢有限個空間(空間個數和字符串的長度無關)

編寫函數: unsigned int reverse_bit(unsigned int value); 這個函數的返回值是value的二進制位模式從左到右翻轉後的值。 如: 在32位機器上25這個值包含下列各位: 0000000

原创 有意思的邏輯題

5位運動員參加了10米臺跳水比賽,有人讓他們預測比賽結果 A選手說:B第二,我第三; B選手說:我第二,E第四; C選手說:我第一,D第二; D選手說:C最後,我第三; E選手說:我第四,A第一; 比賽結束後,每位選手都說對了一

原创 字符串函數的實現, memmove() 函數的實現和解析

strlen 函數的實現 int my_strlen(char* dst) { assert(dst); char* ret = dst; int count = 0; while (*ret!='\0') { +

原创 list 和 vector誰更勝一籌?

首先揭曉答案,vector 和 list 之間沒有勝負!因爲 vector 就像數組,而 list 就像鏈表,都可以存儲數據,但是各有優缺點,只是我們在使用的過程中,需要“因地制宜”。 list和vector的使用 list和

原创 類和對象中的一些瑣碎的知識

常常看到某些貴族一到情人節就趕緊給自己 new 一個對象 今天便來說說他們的對象和一個叫類的東西之間的關係 類 類的定義: 類在C++中是由關鍵字 class 加上類名後面再跟上一對花括號構成的,花括號中便是類的主體,類中的東西

原创 基礎IO

基礎IO: 標準庫IO接口 / Linux下系統調用IO接口 / 文件描述符 / 重定向 / 文件系統 / 庫文件 標準庫的IO接口 標準庫的IO接口: fopen / fwrite / fread / fseek / fclos

原创 選擇排序

思想: 把要排序的序列分爲兩個序列,分別是有序序列和無序序列。一開始,因爲還沒有進行排序,所以整個序列都是無序的,所以有序序列爲空,然後以升序爲例,進行一次循環,挑出最小的數,放到無序序列的最前邊,然後進行一次劃分,將剛選出的這個

原创 堆排序

數組是完全二叉樹的很好的存儲方式。比如說一個完全二叉樹如下圖所示。 他的物理結構便是這樣。 滿足這樣一個關係:雙親結點的位置 X 2 +1 = 左孩子結點的位置。(孩子節點的位置 - 1)/ 2 = 雙親結點的位置。 然後說關於堆

原创 單鏈表——數據結構

SLinkedList.h #pragma once #include<stdio.h> #include<stdlib.h> #include<malloc.h> #include<assert.h> typedef int S

原创 雙向循環鏈表

DLinkedList.c #include"DLinkedList.h" // 創建返回鏈表的頭結點. ListNode* ListCreate() { ListNode* head = (ListNode*)malloc

原创

Stack.h #pragma once #include<stdio.h> #include<stdlib.h> typedef int DataType; /*定義棧中數據元素的數據類型*/ typedef struct

原创 基礎指令的權限和常用工具

權限 操作系統中操作的權限:管理員-root;普通用戶。 文件的權限: 1.對用戶的劃分:文件所有者/文件所屬組/其他用戶 2.對操作的劃分:可讀/可寫/可執行 目錄:可瀏覽/可在目錄下創建/刪除文件/可進入 用二進制比特位保存

原创 移位操作符

左移 在左移位中,值最左邊的幾位被丟棄,右邊多出來的幾個空格則由 0 補齊。如上圖。 右移 右移位操作存在一個左移位操作不曾面臨的問題,從左邊移入新位時,可以選擇兩種方案。一種是邏輯移位,左邊移入位用 0 填充;另一種是算數移位

原创 指針數組和數組指針

先寫一個數組指針 int arr[3][5]; //這是一個普通的二維數組 int (*p)[5]; //這是一個指向數組的指針 下標優先級高於間接訪問,但是由於括號的存在,首先執行的還是間接訪問。所以,p 是個指針,一個指