蛇形陣列:
//蛇形函式問題
#include
#include
void main()
i--;//不然的話上面一行i++之後越過邊界了
j--;//不然會覆蓋邊角的那個數
while(j>=0&&s[i][j]==0&&k<=n*n)
j++;
i--;
while(i>=0&&s[i][j]==0&&k<=n*n)
i++;
j++;
while(j<=n-1&&s[i][j]==0&&k<=n*n)
i++;
j--;
}
//列印輸出
for(int x = 0;x
printf("\n");}}
結果:const和define的區別:
define不需要指名型別,const唯讀不能修改。const 要做型別判斷
const char *p;
char const *p;
p指向可以改,*p不可改
char * const p="abc"; *p可以改,但這兒不可改,是在靜態區,初始化必須指向,不然會報錯
char const * const p="abc" ; p不可改,*p也不可改
const資料開闢在靜態區,在編譯的時候就開闢空間了
引用:int &a=5; 是錯誤的 就類似: int *p=&5; 錯誤
別名是唯一的,一旦起了別名就不可以更改
引用和指標的區別:
1.從記憶體上來講 系統為指標分寸記憶體空間,而引用與繫結的物件共享記憶體空間,系統不為引用變數分配內容空間。
2指標初始化以後可以改變指向的物件,而引用定義的時候必須要初始化,且初始化以後不允許再重新繫結物件。
3.所以引用訪問物件是直接訪問。指標訪問物件是間接訪問。
4。如果pa是指標,那麼*pa就是引用了。
但是兩者在作為形參的時候非常相似,區別是指標拷貝副本,引用不拷貝。程式如下:
#include
void pt(int * pta,int * ptb)
void ref(int &ra,int &rb)
void main()
const和static區別
const int i=10; //i不可以更改
static int a=10;//可以更改 只初始化一次
如果把const放在變數型別名前,說明這個變數的值是保持不變的,該變數必須在定義時初始化,初始化後對它進行的任何賦值都是非法的。
將static用於乙個全域性變數,是說明該全域性變數只對定義在同乙個檔案中的函式可見。即使在另乙個檔案中使用了extern,另乙個檔案中的函式也不能訪問這個全域性變數。
static的第二個含義是用於乙個函式前,說明該函式只能在同乙個檔案中呼叫。
第三個含義是static用於函式的區域性變數。它表明該變數的值不會因為函式終止而消失,它會被儲存下來。再次呼叫該函式時,這個儲存下來的值會用來初始化該變數。
第四個含義就是用於類的成員變數。它表明對類的所有物件,這個資料成員都只有乙個例項。這個例項被所有物件共有。static的成員變數可以是private、public、protected的。定義和訪問的語法也和其他資料成員一樣。
定義類不佔儲存空間,只是定義了型別。
PHP的幾個修飾詞
相信大家對php函式的幾個修飾詞應該不會陌生,public private protected static經常出現在專案 中,但你真的了解他們嗎?public 公有成員函式,可被任何其它物件和類的成員函式呼叫。當該成員函式必須被該函式所在的層次結構之外的其他物件和類在訪問時使用。private 私...
關於protected修飾詞的思考
先貼出protected的訪問區間 同一包內或者在其子類中訪問。雖然很簡單的話但是對於乙個初學者來說似乎會存在一些誤解 沒有細細考究之前我也是如此 而這個誤解在 呢,先看幾行簡單的再不能簡單的 package tesst public class test1 package tesst public...
iOS OC 中的屬性修飾詞
屬性修飾詞首先,它是個啥子 我們用一張圖來看下 上圖綠色框框裡面都是屬性修飾詞,屬性修飾詞是oc的一大特點 說到屬性修飾詞之前,先說先xcode兩種編譯模式 arc 和 mrc 用乙個最直白的話說 arc 開發者不需要關係物件記憶體釋放情況,mrc則反之 這個和修飾詞有啥子關係了 我們用一張表來看下...