原创 指針與數組

數組和指針是區別不開的,數組的表示方法其實就是在變相的使用指針。 數組的表示方法爲 int arr[10],聲明瞭一個長度爲10的int型的數組,數組名是首元素的地址,也就是arr == &arr[0],這兩個是相等的,那arr+1是什麼

原创 C語言指針理解

PHP底層是C語言,在看php源碼的時候,遇到了指針,有點迷惑,當初學的比較淺,只是爲了過計算機二級,到現在也忘得差不多了,所以現在需要重新溫習一下C語言的指針。 對於指針,想象成一個模型便於理解,可以想象成一個房間,變量看成房間,變量的

原创 動態語言、靜態語言、腳本語言、解釋型語言、編譯型語言

本人是php程序員,也做過一年java的開發,學習過c語言,會JavaScript,再回想起來,感覺語言之間的區別有點迷惑,所以整理一下。 1.動態語言 動態語言是在運行時才確定數據類型的語言。變量使用之前不需要類型聲明,通常變量的類型是

原创 shell命令之case

先看例子 #!/bin/bash #case的練習 #2018-12-19 SWITCH=$1 case $SWITCH in apache) echo "安裝apache" ;;

原创 初識shell命令

1. 文件以#! /bin/bash開頭,其中的#!是約定的標記,告訴系統這個腳本需要什麼編譯器來執行,即使用哪一種shell。 2.新建一個文件,first_shell.sh,然後輸入以下內容 #! /bin/bash echo "h

原创 shell腳本備份數據庫

#!/bin/bash #數據庫的備份 #2018-12-18 #備份的數據庫名 MYSQLDB=blog #用戶名 MYSQLUSER=root #密碼 MYSQLPWD=root #備份的文件名 BACKDIR=/usr/local

原创 shell命令之for循環

1.先看個小例子,打印出1-15 #!/bin/bash for i in `seq 15` do echo "NUM is $i" done  seq 15是將1-15的數都列出來。關鍵字是for do done。

原创 crontab的用法

使用crontab你可以在指定的時間執行一個shell腳本或者一系列Linux命令。例如系統管理員安排一個備份任務使其每天都運行。 1.cron服務 service crond start    //啓動服務 service crond

原创 centos關閉防火牆

CentOS默認使用的是firewall作爲防火牆,使用iptables必須重新設置一下 1、直接關閉防火牆 systemctl stop firewalld.service #停止firewall systemctl disable f

原创 php 實現 strToInt

將一個字符串轉換成一個整數的功能,但是string不符合數字要求時返回0,要求不能使用字符串轉換整數的庫函數。 數值爲0或者字符串不是一個合法的數值則返回0。 function StrToInt($str) { $flag =

原创 求無序數組中第k大的數

如果是排好序的數組,則比較簡單,直接$arr[$k-1]就能求出,如果不是排好序的就需要先排序,但這種時間複雜度爲O(n2),所以不能直接排序。我們知道快速排序就是找一個哨兵,使左邊的數比它大,右邊的數比它小,然後在對左右兩邊的數重複上次

原创 C語言中scanf與getchar的用法

最近看C語言書,看到getchar()函數後,和scanf()函數有點混淆,下面就來區分一下這兩個函數吧。 1.首先看一下scanf的用法 char s; scanf("%s",&s); 函數輸入字符串時存在一個問題,就是如果輸入了空格會

原创 關於vim常用命令

一移動命令 1.跳到文本的最後一行:shift+g 2.跳到文本的首行 :輸入兩個g,即gg 3.跳到當前行的首字母:在當前行按0 4.向下移動一屏:ctrl+f 5.向上移動一屏:ctrl+b 6.向上移動半屏:ctrl+u 7.向下移

原创 php實現01揹包問題之動態規劃

1.首先看一下這個方程,這是揹包問題的精髓所在01揹包的狀態轉換方程 f[i,j] = Max{ f[i-1,j-Wi]+Pi( j >= Wi ),  f[i-1,j] }f[i,j]表示在前i件物品中選擇若干件放在承重爲 j 的揹包中

原创 git命令log與reflog的比較

用git命令,想看到自己的操作記錄,則可以使用log與reflog,它兩個的區別如下:1.git log 命令可以顯示所有提交過的版本信息例如 如果感覺太繁瑣,可以加上參數  --pretty=oneline,只會顯示版本號和提交時的備註