1. int(*p)[10]: 根據運算符的結合律,()的優(yōu)先級最高,所以p是一個指針,指向的一個維度為10的一維數組。 p一個指向數組的某一行 復制代碼代碼如下: int a[1][4]={1,2,3,4}; int (*p)[4] = a;//p point to the row of array a for(int i=0;i<4;i++) { cout<<*((*p)+i)<<"
int *p[n] 重點:[]優(yōu)先級高,先與p結合成為一個數組,再由int*說明這是一個整型指針數組,它有n個指針類型的數組元素:即它就是一個存放了n個指針的數組。 這樣賦值也是錯誤的:p=a;因為p是個右值,p的值只存在p[0]、p[1]、p[2]...p[n-1],而且它們分別是指針變量可以用來存放變量地址。但可以這樣*p=...
int *p[3]與int (*p)[3]的區(qū)別 *p[3]這個是一個指針數組,它所代表的意思是數組中的每一個元素都是一個指針變量,而(*p)[3],p是一個指針變量,表示指向一個含有3個整型元素的一維數組。 復制代碼代碼如下: int i,j; int a[2][3]={3,4,5,6,7,8}; // ...
const int *p 先看*再看const,定義一個指針指向一個常量,不能通過指針來修改這個指針指向的值。 實例3: 復制代碼代碼如下: #include<iostream> #include<stdlib.h> using namespace std; void main() { int i1=30; int i2=40; const int * pi=&i1; ...
int i = 1; //char*p = (char*)&i; return (*(char*)&i);//先將i的地址取出強制類型轉換為char* //解引用后只會訪問一個字節(jié),且為最低位的那個字節(jié) //如果是小端存儲(01 00 00 00)則解引用后得到的是1 //如果是大端存儲(00 00 00 01)則解引用后得到的是0 } int main() { int ret =...