原创 動態內存/動態數組

一、malloc   1.常用表達式:int *p = (int *)malloc(n*sizeof(int));       爲20個char*分配內存 char **p = (char **)malloc(20*sizeof(char

原创 遞歸、時間複雜度和空間複雜度

一、遞歸:函數自己調用自己 1.Fibon數列是使用遞歸最差的例子 //Age(5)表示第5個人的年齡 //Age(4)表達第4個人的年齡 //Age(3)表達第3個人的年齡 //Age(2)表達第2個人的年齡 //Age(1)表達第1個

原创 一個乒乓球引發的一系列問題(窮舉法)

一、乒乓球對手匹配:A:不和Z,C不和X、Z void Match()//窮舉 {  for(char a='X';a<='Z';a++)//A的對手  {   for(char b='X';b<='Z';b++)   {    for

原创 fork、內存泄漏、進程

1.系統調用  fork:複製進程 Pid_t  fork(void); Pid_t:int    pid:進程的編號(id標識符) 父子進程併發運

原创 文件、文件系統

一、文件類型 1.二進制文件:非文字形式,如圖片,音樂,電影 2.文本文件:文字形式 二、外存和內存 1.外存:如磁盤(如機械硬盤,固態硬盤[速度快])、磁帶、CD,外存速度慢,掉電保護 2.內存,速度快,掉電不保護,速度越快,價格越貴

原创 關於分頁,我所學到的

       近來我學習了mybatis Pagehelper分頁,瞭解了其原理。        總結Pagehelper分頁與List分頁的不同點,List分頁適用於獲取到的數據不是數據庫裏的,Pagehelper分頁適用於數據庫裏的數

原创 衆多回文問題

//1.判斷一個數字是否是迴文 bool IsCircleNum(int num,int len) {  char tmp = 0;  char *str = (char *)malloc(len*sizeof(char));  char

原创 gets、scanf

gets     【1】函數:gets(字符指針)     【2】頭文件:stdio.h(c中),c++不需包含此頭文件     【3】原型:char*gets(char*buffer);     【4】功能:從stdin流中讀取字符串,

原创 結構體大小的計算、聯合、位段

一、結構體大小的計算 硬件裏的寄存器讀取數據的整數倍,有個內存對齊的規則 struct A {  int a;  int b; };//8 struct B {  char a;//1+3  int b;//4 }; struct

原创 約瑟夫環、內存重疊

一、約瑟夫環 有n個人圍成一圈,報3的退出,問剩下的一個人的編號是多少? int Circle(int n)//約瑟夫環 {  int *arr = (int *)malloc(n*sizeof(int));  int i;  for(

原创 線性表

一、線性表可分爲順序表和鏈表 順序表:邏輯相鄰,物理也相鄰 鏈表:邏輯相鄰但物理可能不相鄰 在seqlist.h這個頭文件裏: #pragma once //防止頭文件被重複引用 //固定長度的順序表 #define SIZE 10 //

原创 C語言中函數返回字符串的四種方法

C語言中函數返回字符串的四種方法 原文鏈接:  http://www.cnblogs.com/qingergege/p/6496683.html 在討論着四種方法之前,首先要對函數有一個簡單的認識,無論是在形實結合時,還是在retu

原创 可變參數問題(以及Myprintf函數的實現)

#include <stdarg.h>//可變參數頭文件 例如: 1.int Max_list(int a,...)//參數有好多怎麼辦? {  va_list list;  int max = a;  int cur = a;  va

原创 自定義數據類型/結構體(struct)、typedef

一、struct 1.struct Student             //只要定義好了與基本類型一樣 {     char name[20];     int age; }; int main() {     int a = 10

原创 淺拷貝,深拷貝

一、淺拷貝 含義:多個指針指向同一個內存(如生活中的共享) 特點:不能修改 1.如字符串常量就是淺拷貝,不允許修改 char *str1 = "hello world"; char str1[0] = 'a';//error 2.指針數