在前面總結引數傳遞的三種方式時,我們提到,在建立乙個指標之後,我們首先要給它乙個位址,即int *p=&a;之後p本身的值所代表的就是它所指向內容的位址,而*p就是它所指向的內容的值。但之前我們討論的,都是指標指向乙個值的情況,例如指向乙個int型變數或者char型等等。但今天在複習深淺複製時,發現當我們的指標指向的是一塊連續區域時(例如字元陣列),上述的很多結論就不成立了。
來看例子:
char *n;
n=new char[10001];//分配一塊記憶體給n;
我們定義了乙個指向字元型變數的指標,然後為它分配了一塊記憶體,所以現在它已經得到乙個位址了,那麼現在n本身的值代表的是否還是乙個位址呢?如果不是的話,那麼*n所代表的又是什麼呢?同時我們有應怎樣修改它所指向區域的值?
①、n現在代表的不再是乙個位址,而是它所指向區域的值;
#includeusing namespace std;
int main()
②、*n所代表的是n指向區域的首元素(是單個字元,而不是字串);
#includeusing namespace std;
int main()
{ char *n;
n=new char[10001];
*n='a';//不能寫成*n="abc",原因略;
cout<<*n<③、修改目標區域的值,直接n=" 所需要的內容 "。
the end;
指標 待補充
將位址視為指定的量,將值視為派生量。指標 一種特殊型別的變數 用於儲存值的位址。指標名表示的是位址,運算子被稱為間接值或解除引用運算子,將其應用於指標,可以得到該位址處儲存的值。例,假設manly是乙個指標,manly表示的是乙個位址,manly表示儲存在該位址處的值。宣告和初始化 運算子兩遍的空格...
ccaY 的補充內容
lex 的常規表示式 常規表示式是一種使用元語言的模式描述。表示式由符號組成。符號一般是字元和數字,但是 lex 中還有一些具有特殊含義的其他標記。下面兩個 定義了 lex 中使用的一些標記並給出了幾個典型的例子。用 lex 定義常規表示式 字元含義 a z,0 9,a z構成了部分模式的字元和數字...
Linux學習筆記 補充內容
命令格式 find 目錄 條件 條件值1.find name find etc name passwd 查詢 etc下名字叫做passwd的檔案2.find user group a o not find mnt group root find mnt user westos find mnt gr...