1、指針與數組-掌握
在C語言中數組的指針:是指數組在記憶體中的起始位址,數組元素的位址:是指數組元素在記憶體中的起始位址一維數組的數組名為一維數組的指針(起始位址)例:double x[8];因些,x為x數組的起始位址
假設指針變量px的位址值等于數組指針x(即指針變量px指向數組的首元數),則:x[i]、*(px+i)、*(x+i)和px[i]具有完全相同的功能:通路數組第i+1數組元素 注、把一個數組的位址賦給具有相同資料類型的指針,例int a[20], *px;pa =a; //等價 pa= &a[0]例:#include int main(){ int a[]={3,1,2,8,6}; int i,*p,n; p =a; n =sizeof(a)/sizeof(int); for(i=0;i
程式執行個體:
2、指針與二維數組-掌握
多元數組就是具有兩個或兩個以上下标的數組在C語言中,二維數組的元素連續存儲,按行優先存。
程式執行個體:
使用一個一級指針,周遊一個二維的數組。#include int main(){ int a[3][2]={{1,2},{5,6},{7,9}}; int i,*p,n; p =&a[0][0]; n =sizeof(a)/sizeof(int); for(i=0;i
行指針、行位址
二維數組名代表數組的起始位址,數組名加1,是移動一行元素,是以,二維數組名常被稱為行位址。行指針(數組指針)存儲行位址的指針變量,叫做行指針變量,形式如下 (*) [表達式]例如: int a[2][3]; int (*p)[3];-方括号中的常量表達式表示指針加1,移動幾個資料。-當用行指針操作二維數組時,表達式一般寫成1行的元素個數,即列數。#include int main(){ int a[3][2]={{1,2},{5,6},{7,9}}; int (*p)[2]; p =a; printf("%d %d",a[1][1],p[1][1]); printf("%p %p",&a[1][1],&p[1][1]); return 0;}輸出:6 60x7ffd78bd343c 0x7ffd78bd343c
3、總結
指針二維數組,包括一級指針如何通路二維數組以及行指針如何通路二維數組
4、思考
二維數組名有什麼特點?程式設計實作,使用行指針周遊二維組數?
