1樓:匿名使用者
int *p的含義是指定
bai義p為整型資料du的地址指標。
*表示zhi這是一個指dao針回。int 表示指標的資料型別。
&a[0][0]表示的是答a這個陣列第一個元素在記憶體中的儲存地址int *p=&a[0][0];這段**會將陣列a的第一個元素的記憶體地址值賦給變數p
假如p的值發生變化,比如p++,執行後,p指標將會指向陣列a的第二個元素。
通過*p操作,可以取得p所指地址下的儲存內容。如y=*p;
2樓:l李念祖
第一行的*p是定義了一個整形的指標並賦值為&a[0][0]第二行中的是表示定義了一個數版
組,陣列中的元素存權放的是指標,並且給陣列的第一個元素賦值&a[0][0]
最後一行是定義了一個整形的指標名為p的指標
3樓:jianjian家族
int *p
定義*p是一個指標copy變數(指向baiint型);
int *p=&a[0][0];
這句話的意思是:
定義du了一個名p指向int型的指標變zhi量並初始化dao 把陣列a[0][0]的首地址賦值給指標變數pint (*p)[3]=&a[0][0];
定義了 指向包含3個一維陣列的指標變數
p為指標變數 ;指向包含3個一維陣列
p+1表示指向3維陣列的第一行的指標
*(p+i)+j表示i行j列元素的地址
*(*(p+i)+j)表示i行j列元素的值謝謝 希望能幫到你
c語言中 int *p=a[0] 這樣表達對不對
4樓:待月上弦
這個表示式沒有語法錯誤,但是我估計不能達到你想要的結果,不知道你要表達什麼。給你分析下這個表示式的含義,這裡a[0]應該表示一個地址,把這個地址賦給p,然後*p表示a[0]地址所指向的內容。我估計你的a是一個一維陣列,你可能是想讓指標p指向a[0]這個元素,如果是這樣,則表示式應該改為int *p = &a[0]。
但是如果a是一個二維陣列,則這個表示式有意義,沒有任何問題!
5樓:月光疾風
不對,因為p是指標,因此只能對應a[0]的地址,a[0]前面加個取地址符:
int *p=&a[0];
6樓:茜灬一
差不多,就是a應該是int陣列
c語言 *p=&a[0][0] 這是什麼意思啊? 如果後面還有*p+1;呢
7樓:匿名使用者
p是個指標,指向的地方被賦值為a[0][0]的地址,所以p應該是個二維指標例如
int * q;//相當於&a[0][0]int** p=&q ;
*p=q;
後面的*p+1值就是&a[0][1]
8樓:洛雨
就是把p指向a[0][0]的地址,*p+1,根據優先順序,其實是(*p)+1,相當於a[0][0]+1
*p=&a[0] 和p=&a[0]有什麼區別
9樓:匿名使用者
舉個例子吧:
a是一個陣列,它在記憶體中的初始地址比如說是0x11111111(簡單假設),且a[0]的值是1,也就是說,記憶體0x11111111中儲存的值是1。
於是,&a[0]=0x11111111,a[0]=1。
int *p;
p=&a[0];
指標p會有一個自己的記憶體地址,通常佔用4個位元組(比如初始地址是0x22222222)。p的值是&a[0],也就是說從0x22222222開始,後面4個位元組中儲存的值是0x11111111。
*p的值就等於p所指向的記憶體地址中儲存的值,也就是a[0]。所以*p等於1。
如果*p=&a[0]的話,很容易出問題。比如說int *p之後,p的初始值可能是0xcccccccc(debug版本)或者0x00000000(release版本)。這個時候,如果你寫一句*p=&a[0]的話,將會把0xcccccccc或者0x00000000記憶體之後4個位元組的值變為0x11111111。
而0xcccccccc和0x00000000記憶體區通常是不可寫的,這樣就會報錯。
10樓:匿名使用者
*p=a[0] //將 a[0]的值賦給到p所指向的位置。
p=&a[0] //將 a[0]的地址賦給p則,如果:
int a[10];
int *p;
*p=a[0]; //1
p=&a[0]; //2
2句恆正確,1句則有可能引發記憶體非法訪問錯誤。
c語言中*p=a[0]與p=a[0]有什麼區別?
11樓:匿名使用者
對於指標來說,
*p = a[0],表示向地址為p的記憶體區域賦值為a[0]。
p = a[0],把變數p的值改為a[0],這個語句正常應用中是錯誤的。變數p的值為記憶體地址,這樣賦值會丟掉p原來指向的記憶體。
正確給記憶體地址賦值應該使用第一句。
12樓:匿名使用者
這個是指標和變數的區別:
第一個表示變數p存的是陣列a的地址值,即表示指向陣列a
第二個表示p和陣列a的第一個元素的值一樣。
13樓:
有啊,*p是個指標,他儲存的是一個變數的地址。你把a[0]裡的資料賦給他,是儲存在那個變數中,不是在存*p中。另一個p是個變數,a[0]中的資料時存在p中
例如:int *p;
p=&b;
*p=a[0];
b==a[0] 值是放在b中
另一個是放在p中 ,不同的
14樓:
都是賦值語句,p的資料型別不同,被賦值的對像不同而已
*p=a[0] ==>賦值對像不是變數p本身,而是它所指向的對像
p=a[0] ==>賦值的對像就是變數p本身
*p=&a,*p=a和p=&a各是什麼意思,有什麼區別?
15樓:匿名使用者
表示式的意思:
1、*p=a的意思:將a的值賦給p指標指向的地址的值;
2、p=&a的意思是:將a的地址賦給指標p;
3、*p=&a的用法錯誤。
區別在於:
p=&a就是用a的地址對p賦值,a是一個變數,&a就是儲存這個變數的記憶體地址,指標儲存的就是一個地址,*p就是這一地址中的內容。
擴充套件資料另類*和&
兩個地方要注意: 在程式宣告變數的時候的*,只是表明「它是一個無符號整數,這個整數指向某個記憶體地址,一次訪問sizeof(type)長度」。這點不要和(*)操作符混淆;
在c++程式宣告變數的時候的&,只是表明「它是一個引用,這個引用宣告時不開闢新空間,它在記憶體分配表加入新的一行,該行記憶體地址等於和呼叫時傳入的對應引數記憶體地址」。
這點不要和(*)宣告符,(&)操作符混淆。
16樓:匿名使用者
1.一般來說*p=&a的表示方法是錯的,*p=a和p=&a是正確的。
2.*p=a的意思:將a的值賦給p指標指向的地址的值;
3.p=&a的意思是:將a的地址賦給指標p;
4.區別:*p是一個值;p是一個地址;兩者完全不相同。
5.*代表著p指向的地址的值,簡單來說就是取值;&是取地址符號,取的是地址;p是指標,可以理解為所指向的值的地址,*p就是取p指標指向的地址的值,&a就是取a的地址。
17樓:匿名使用者
*是解引用運算子 &是取地址運算子
18樓:小小小子
int *p=&a;
和int *p;pa=&a;等價
這裡的*是一個指標說明符,不是間接定址運算子,我剛好看到這一點分享一下,前面幾個人都說這種是錯誤的,估計理解錯了吧
19樓:千古1帝劉公嗣
直接看**執行結果就
清楚了。
#include
int main()
20樓:匿名使用者
這個問題如下所述:
int b=5;a=10;// 定義變數a,並賦值為10;b=5
int *p=&b; //定義指標變數p,並且讓指標p指向變數b,其中 & 為
//取地址運算子
*p=a; //是將a的值就是10存放到指標p指向的變數b,這樣b的值不再是
// b=5,而是變成b=10
p=&a;// 這句是改變p 的指向,讓p指向變數a。例如還有下面的語句
*p=123; //那麼這樣後就會有p指向的變數的值為123.此處是a=123.
21樓:匿名使用者
& 取地址符 值相當與指標
* 取對應地址字元 型別與該地址所儲存的變數型別一樣
22樓:匿名使用者
*p=a是p取a值
而p=&a是取a 的記憶體地址
23樓:匿名使用者
第一個&是指引用吧,*p=&a意思是p所指的值為a的引用
int *p=a和int *p=&a有什麼區別?
24樓:匿名使用者
int *p=&a 其實是兩個語句 等價於 int *p; p=&a;
如果a是int型,int *p=a是錯誤的,正確的應該是 int *p; p=&a;
在定義的時候不能給p直接賦值整型,只能賦值int型地址 即 &a;
如果要給p指標指向的地址賦值,就可以*p=a;但不能在定義*p的時候直接賦整型。
25樓:
int a[10];
int *p=a; //與前面定義的陣列名a型別相同,才可以這樣賦值。
int a;
int *p=&a; //前面定義的a是普通變數,才可以這樣賦值。
26樓:捧一米陽光
從基本定義來啊,int *p之後p為一個地址,*代表指向這個地址,int *p=&a等價於int *p,p=&a.這樣p和&a都是地址,可以=。對於int *p=a,如果a為陣列名,則也是個地址,與前面的就同了,如果a只是個一般變數,p是地址,*指向它,*p合起來就是一個數,如a是int型,就可看成兩個數賦值,如果a不是int型,出錯
27樓:匿名使用者
我的理解
int a,*pa=&a;是正確的,相當於int a,*pa;pa=&a;即(int*)pa=&a。
而int a,*pa;* pa=&a;是錯誤的,因為*pa是值,&a是地址。
28樓:孤楠獨碧
int *p就是申請一個int型的指標p,指標是用來儲存地址的,所以&a就是取得a的地址賦給p。但是int*p=a的話,a必須是個地址,可以是指標,也可以使陣列名。
29樓:不瀟撒的漁
int* p 是定義個指標變數,&是取址符;
所以int* p=a,是定義個整型指標變數,並將a賦值給該變數;
int* p=&a,是將a的地址賦給該整型指標變數;
30樓:
我猜你的 a是int型的 假設定義了 int a = 12; 那麼 int *p = a;編譯是通不過的, 因為這裡p初始化是把 int 型直接賦值給了 int*這是編譯器不允許的, 而後者 int *p = &a, 是把變數a的地址賦值給指標p 意思是把a的地址儲存在指標的記憶體空間中, 我們查詢 *p 是根據指標p儲存的地址去找到a的。
31樓:我的查出
int *p=a相當只要你給與a一個具體的值該指標將指到那兒
int *p=&a是&a中的a是你輸入的值所在的位置而p指的是地址a的地址
32樓:匿名使用者
int *p=a p指標的值(p代表的地址)是a
int *p=&a 表示p指標指向的是a的地址,p的值是a的地址
33樓:匿名使用者
前者是將a的內容賦給指標p(也就是p指向a指向的資料)
後者是將a的地址賦給指標p(也就是p指向a)
34樓:匿名使用者
int *p=a 表示p指標的地址是a
int *p=&a 表示p指標指向的是a的地址,p的值的a的地址
p在印刷中是什麼意思
p在印刷中兩個概念,一個指畫冊的面數,一個指有多少個a4大小。英文單詞page。印刷算一個p的方法 1 在畫冊印刷中1個p,其實就是相當於說印刷頁面,2個p就是2面 1頁 24p就是24面 12頁 與畫冊的大小無關。2 在彩盒出菲林和打稿時也經常提到一個p,這個p就跟檔案大小有關,而不是畫冊印刷中的...
物理中的是什麼意思,0在物理中的意思是什麼
希臘字母bai 艾普西隆 epsilon 大寫 du小寫 是zhi第五個希臘字dao母。小寫的 用於 專 數學 非常小屬 集合的關係中,表示 屬於 的 符號 列維 齊維塔符號 levi civita symbol 電腦科學 空字串 數值型態的精確度 物理學 一個導體的介電常數 美式英語中使用的一個音...
p2p是什麼意思,P2P是什麼意思
康博士1分鐘告訴你 p2p是什麼意思 person to person p2p是英文peertopeerlending 或peer to peer 的縮寫,意即個人對個人 夥伴對夥伴 又稱點對點網路借款,是一種將小額資金聚集起來借貸給有資金需求人群的一種民間小額借貸模式。屬於網際網路金融 itfin...