程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++之父力作學習筆記3——指針

C++之父力作學習筆記3——指針

編輯:C++入門知識

由於工作需要轉成了C#,好久沒有學C++了,之前學了一段時間的C++,也寫過兩篇,放在博客園裡的,現在有專門的C++博客,以後就在這裡寫了。以下是前兩篇的地址
C++之父力作學習筆記1    C++之父力作學習筆記
   
   今天來簡單說一下指針,可以說指針是一個難點,是一把雙刃劍,也許高手才能運用自如,像我這樣的菜鳥就會傷到自己。呵呵,廢話少說。
   指針:對類型T,T*是“到T的指針”,也就是說,一個類型為T*的變量能保存一個類型T的對象的地址。例如: char c='a';
char *p=&c;//p保存著c的地址
用圖表示是:

\

這些都挺容易理解的,不幸的是,到數組的指針和到函數的指針需要更復雜的記法: int* pi;          //到int的指針
char** ppc;       //到字符的指針的指針
int* ap[10];      //10個到int的指針的數組
int (*fp)(char*); //到函數的指針,這種函數以char*為參數,返回int
int* f(char*);    //有一個char*參數的函數,返回一個到ini的指針
   對指針的基本操作是間接引用,也就是說引用被指針所指的那個對象。這一操作也被稱作間接(indirectionn)。間接運算符是(前綴的)一元*。例如 char c='a';
char* p=&c;   //p保存著c的地址
char c2=*p;   //c2=='a'被p所指的變量是c,而c中所存的值是'a'。所以由*p賦給c2的值就是'a'.
注意:這裡解釋一下 間接運算符是(前綴的)一元*。這就要扯到聲明的結構了。
         一個聲明由四個部分組成:一個可選的“描述符”,一個基礎類型,一個聲明符,還有一個可選的初始式。除了函數和名字空間之外,其他聲明都應該由分號結束。例如: char* kings[]={"Antigonus","Seleucus","Ptolemy"};這裡的基礎類型是char,聲明符是*kings[],而初始化是={...}。
      描述符是一個開始關鍵字,例如:virtual和extern,它們說明了被聲明事物的某些非類型的屬性。
      聲明符由一個名字和可選的若干聲明運算符組成。最常用的聲明運算符是
      *             指針          前綴
      *const     常量指針     前綴
      &            引用           前綴
      []            數組          後綴
      ()            函數          後綴

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved