清华大学c语言指针ppt,清华大学出版社-C语言10指针.ppt
清華大學出版社-C語言10指針
void print(char *name[ ],int n) {int i; for(i=0;i<n;i++) printf(″%s\n″,name[i]); } 運行結果為: BASIC Computer design FORTRAN Follow me Great Wall 10.7.2 指向指針的指針 定義一個指向指針數據的指針變量: char**p; p的前面有兩個*號。*運算符的結合性是從右到左,因此**p相當于*(*p),顯然*p是指針變量的定義形式。如果沒有最前面的*,那就是定義了一個指向字符數據的指針變量。現在它前面又有一個*號,表示指針變量p是指向一個字符指針變量的。*p就是p所指向的另一個指針變量。 例10.27 使用指向指針的指針。 #include void main() {char *name[]={"Follow me","BASIC","Great Wall″,"FORTRAN","Computer design"}; char **p; int i; for(i=0;i<5;i++) {p=name+i; printf(″%s\n″,*p); } } 例10.28 一個指針數組的元素指向整型數據的簡單例子。 #include void main() {int a[5]={1,3,5,7,9}; int *num[5]={&a[0],&a[1], &a[2],&a[3],&a[4]}; int **p,i; p=num; for(i=0;i<5;i++= { printf(″%d ″,**p); p++; } } 10.7.3 指針數組作main函數的形參 指針數組的一個重要應用是作為main函數的形參。在以往的程序中,main函數的第一行一般寫成以下形式:void main()括弧中是空的。 main函數可以有參數,例如: void main(int argc,char *argv[ ])。 命令行的一般形式為命令名 參數1 參數2……參數n 例如一個名為file1的文件,它包含以下的main函數: void main(int argc,char *argv[ ]) {while(argc>1) {++argv; printf(″%s\n″,argv); --argc; } } 在DOS命令狀態下輸入的命令行為 file1 China Beijing 則執行以上命令行將會輸出以下信息: China Beijing 10.8有關指針的數據類型和 指針運算的小結 10.8.1有關指針的數據類型的小結 定義 含義 int i; 定義整型變量i int*p; p為指向整型數據的指針變量 int a[n]; 定義整型數組a,它有n個元素 int *p[n]; 定義指針數組p,它由n個指向整型數據的指針元素組成 int (*p)[n]; p為指向含n個元素的一維數組的指針變量 int f(); f為帶回整型函數值的函數 int *p(); p為帶回一個指針的函數,該指針指向整型數據 int (*p)(); p為指向函數的指針,該函數返回一個整型值 int **p; p是一個指針變量,它指向一個指向整型數據的指針變量 10.8.2 指針運算小結 (1) 指針變量加(減)一個整數 例如:p++、p--、p+i、p-i、p+=i、p-=i等。 (2) 指針變量賦值 將一個變量地址賦給一個指針變量。如: p=&a; (將變量a的地址賦給p) p=array; (將數組array首元素地址賦給p) p=&array[i];(將數組array第i個元素 的地址賦給p) p=max;(max為已定義的函數,將max的入口 地址賦給p) p1=p2;(p1和p2都是指針變量,將p2的 值賦給p1) (3) 指針變量可以有空值,即該指針變量不指向任何變量。 (4) 兩個指針變量可以相減 如果兩個指針變量都指向同一個數組中的元素,則兩個指針變量值之差是兩個指針之間的元素個數 。 (5) 兩個指針變量比較 若兩個指針指向同一個數組的元素,則可以進行比
總結
以上是生活随笔為你收集整理的清华大学c语言指针ppt,清华大学出版社-C语言10指针.ppt的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言ffffff错误,C语言打印16进
- 下一篇: android 二次点击退出,andro