數組和多爲數組、c++
指向多維數組的指針和指針變量、數組
數組名錶明數組的首地址、指針
int a[3][4]; int b, c; for (b = 0; b< 3; b++) { for (c = 0; c < 4; c++) { a[b][c] = 16; } } int* d; d = (int *)(a + 1);//(int *)是強制轉換的意思、指向第一行的首地址、 *d = 51;// a[1][0]賦值成51 d++;//走4個字節 即a[1][1] *d = 91;//將a[1][1]賦值成91
指針數組和數組指針、code
數組中的每一個元素都是個指針、並定義了每一個元素的指針變量class
指針數組變量
int a[3][4]; int b, c; for (b = 0; b < 3; b++) { for (c = 0; c < 4; c++) { a[b][c] = 16; } } a[0][3] = 91; int *d[4]; d[0] = &a[0][0]; d[1] = &a[0][1]; d[2] = &a[0][2]; d[3] = &a[0][3]; for (c = 0; c < 4; c++) { printf("c =%d\n", *(d[c])); } }
數組指針二維數組
1. 一維數組指針 2.
int (*d)[4];//一個指針變量、指向含有4個元素的一維數組 int a[4]; int b, c; for (b = 0; b < 4; b++) { a[b] = b; } d = &a; //使用地址符& a和&a 的地址相同 int* e; e = (int*)d;//(int*)強制轉換、 for (b = 0; b < 4; b++) { printf("e=%d\n", *e); e++; }
二維數組、語言
int(*d)[9]; int a[6][9]; int b, c; for ( b = 0; b <6; b++) { for ( c = 0; c < 9; c++) { a[b][c] = b + c; } } d = a;//二維數組能夠直接賦值給數組指針、 int *e; e = (int *)d; for(b = 0; b < 6; b++) { for (c = 0; c < 9; c++) { printf("%d ", *e); e++; } printf("\n--------------------------------\n"); } d++;//跳了40字節 e = (int*)d;