『壹』 c語言 *p 和p的區別
C語言中,*p 和p都常用在指針當中表示一個指針變數,*p 和p的區別:
1、表示的含義不同
*p表示此指針指向的內存地址中存放的內容。
p表示一個指針變數的名字,指此指針變數所指向的內存地址。
2、輸出的格式不同
*p一般是一個和指針類型一致的變數或者常量。
p輸出的是一個16進制數,輸出一個指針的地址。
3、功能不同
*p是讓程序去那個地址取出數據。
p存放的是地址。
例子:
1、int a[5]={1,2,3,4,5};
int *p=a;//這是在定義指針變數p的同時就直接給它初始化,即把數組a的首地址賦給它。
2、int a[5]={1,2,3,4,5};
int *p;//聲明指針變數p
p = a;
(1)c語言中解引用操作符擴展閱讀
(*p)操作是這樣一種運算,返回p 的值作為地址的那個空間的取值。(&p)則是這樣一種運算,返回當時聲明p 時開辟的地址。可以用賦值語句對內存地址賦值。
例:
int *p;
p=2003H;
*p=3000H
結果:
**p=*(*(p))=*(*(2003H))=*(3000H)=3000H。
&&p=&(&(p))=&(3001H),此時出錯了,3001H 是個常數無法存放地址。
*&p=*(&(p))=*(3001H)=2003H,也就是*&p=p。
『貳』 C語言中的* nData啥意思。*是什麼意思
如果是在變數定義中,*表示nData是一個指針,在其他地方,*是解引用操作符,*nData返回nData指向的對象。
『叄』 c語言中的指針*x=*(x+1)是什麼意思
這樣操作的前提是,x是一個指針,指向一片連續空間的一個位置。
* 是解引用操作符,即取到指針指向的值。
指針可以進行+ - 等操作,進行移動。 x+1就是x向後移動的一個位置
例如:
int* x = new int[2]; //建立了兩個數的數組,x指向第一個數
*x = 1; //將第一個數的值設為1
int* y = x+1; //指針y指向第二個數
*y = 2; //將第二個數的值設為2
*x = *(x+1); // *(x+1)就是第二個數的值:2, 執行完這句後,第一個數也變成了2
delete[] x;
x = NULL;
『肆』 c語言中*z++與++*z的區別
由運算符結合性可知
*z++等效於*(z++) 即表達式的值為*z,且引起指針z指向後一元素
++*z等效於++(*z) 即表達式的值為z指針所指當前元素的值自增一後的值,且指針z指向不變
『伍』 C語言中,p=&a 那麼*p與a的區別是什麼
a和p是變數,&a和*p是表達式,1和0x1000是常量
a和*p表示的都是整形左值,p和&a表示的都是指針型左值,1和0x1000表示整形和指針型右值。(左右值的概念不清的話,google一下)
在內存中,a和p有存儲空間空間,a存放著1,p存放著0x1000,*p和&a沒有空間,他們的運算結果是在寄存器中存放的,1和0x1000也有空間,在程序的常量段存放。
*p按照Stanley Lippman的著作《C++ Primer》中的描述,p是指針變數,*是解引用操作符,*p是一個表達式,含義是逗對指針變數p進行解引用操作地,這與表達式&a的含義逗取整形變數a的地址地是正好是相反的操作。
『陸』 c語言中解引操作符是什麼
*
比如定義一個整形指針
int *p;
int a=5;
p=&a;
*p(=5)就是解引操作符的應用
『柒』 C語言里,*(&a)==a,&(*p)==p的區別
a和p是變數,&a和*p是表達式,1和0x1000是常量
a和*p表示的都是整形左值,p和&a表示的都是指針型左值,1和0x1000表示整形和指針型右值。(左右值的概念不清的話,google一下)
在內存中,a和p有存儲空間空間,a存放著1,p存放著0x1000,*p和&a沒有空間,他們的運算結果是在寄存器中存放的,1和0x1000也有空間,在程序的常量段存放。
*p按照Stanley Lippman的著作《C++ Primer》中的描述,p是指針變數,*是解引用操作符,*p是一個表達式,含義是「對指針變數p進行解引用操作」,這與表達式&a的含義「取整形變數a的地址」是正好是相反的操作。
『捌』 c語言解引用和取地址操作符
我猜是相互抵消了
最好看看編譯後生成的結果
如果*&*&*&*p++與*p++生成的二進制文件一模一樣 那肯定是抵消了
『玖』 解引用的詞語解釋
對於c語言中指針的操作符有兩個:&和*。對於&,好理解,翻譯的也不錯,就是「取地址」的意思。但對於*,翻譯為「解引用」,字面意思不好理解,即使看了後面內容才知道不過是「取指針指向的地址的內容」,也仍然是覺得怪怪的,「解引用」這個詞難記也難於從字面直接判斷意思,以致時間長了還是感覺像見了熟悉的陌生人。
翻了好多資料,以及各種網上解釋,大約有點意思了。依我的理解,約摸是這樣:
「引用」這個詞,出現最多的場景就是:在文章或者注腳里,寫上「引用(或摘自)某某作者某篇文章」,意思很明了,就是出現在本文的不是作者自己的話,而是別個作者的話,於是「引用」的意思就是拿過來用。(以下提到」場景「,就是指的這個例子)
『拾』 C語言和C++中的::和->是什麼意思
::是作用域操作符,表示你引用的變數限定在該作用域內。
->是箭頭操作符,設計它的目的是為了簡化輸入,以及增強程序的可讀性的
->的功能相當於解引用操作符*和成員調用操作符.的組合體
例如:
class C
{
static int a;
}
訪問a就可以使用C::a來訪問,表明這個變數a具有類C的作用域。它在該類內可見。了解更多,那麼namespace就是個很好的例子。
另外。
class C
{
private:
int a;
}
void main()
{
C *p=new C();
//訪問a可以使用如下
(*p).a
或者直接
p->a
來訪問,是不是更簡單明了呢
}
二者的功能是一樣的。總結就是,->的功能就是提供了一種對象指針更方便的訪問對象成員的方法