c++中*p=a和p=&a的區別
#include <iostream>
using namespace std;
int main() { int a = 10; int *PA = new int; *PA = a; cout << "*PA is:" << *PA << endl; //輸出10
int *PB = NULL; PB = &a; //*PB = a; //這樣子賦值會出現錯誤 cout << "*PB is:" << *PB << endl; //輸出10
delete PA;
return 0; }
*PA=a; 表示把a的值賦值給PA所指的堆記憶體地址,PA本身沒變。
PB=&a; 表示指標PB指向變數a的地址,PB本身變了。
相關推薦
C#中的is和as操作符區別小結
devel 獲取 d3d 數據 bottom 技術 datagrid idv center 1. is 是驗證操作對象是不是自己希望的 運算公式:對象 is 類型 返回true:對象是指定類型 返回false:對象不是指定類型 2. as 是將對象轉換成指定類型
關於C++中的繼承和過載的區別
C++中的很多特性光從概念上的話,很難做區分。或者說,概念讓人容易模糊,比如說函式過載和函式繼承。 先說過載,過載分為操作符過載和函式名過載,其中,操作符過載就是對運算操作符的原有功能進
《隨筆二十》—— C++中的“ delete 和 delete [] 的區別”
c++中對new申請的記憶體的釋放方式有delete和delete[]兩種方式,到底這兩者有什麼區別呢? 1.我們通常從教科書上看到這樣的說明: delete 釋放new分配的單個物件指標指向的記憶體 delete[] 釋放new分配的物件陣列指標指向的記
c++中int,和char的區別和特性。
雖然談不上十分難懂或者十分重要,但是希望大家可以全面瞭解一下關於int 和char。 下面是轉載文章: 1.int型別和char型別的區別 比較下面三個定義式的區別: int i = 1; char i = 1; char i = ‘1’; int用來定義整型變數,char用來定義字元型變數
[轉載]C++中的struct和class的區別
C++中的struct對C中的struct進行了擴充,它已經不再只是一個包含不同資料型別的資料結構了,它已經獲取了太多的功能。 struct能包含成員函式嗎? 能! struct能繼承嗎? 能!! struct能實現多型嗎? 能!!! 既然這些它都能實現,那它和clas
C#中結構體和類的區別
結構體和類同樣能夠定義欄位,方法和建構函式,都能例項化物件,這樣看來結構體和類的功能好像是一樣的了,但是他們在資料的儲存上是不一樣的C#結構體和類的區別問題:這兩種資料型別的本質區別主要是各自指向的記憶體位置不同。傳遞類的時候,主要表現為是否同時改變了源物件。1.結構體是值型
【知識積累】C#中結構體和類的區別
【類】 類是對現實生活中一類具有共同特徵的事物的抽象。類的實質是一種資料型別,類似於int、char等基本型別,不同的是它是一種複雜的資料型別。因為它的本質是型別,而不是資料,所以不存
在c++中關於堆和堆疊的區別
從以往我們接觸c++這門語言開始就知道有堆和棧,棧我們一直稱之為堆疊,剛開始是個小白的時候就一直不明白堆疊到底是堆還是棧。 在C++中,記憶體分成5個區,他們分別是堆、棧、自由儲存區、全域性/靜態儲存區和常量儲存區。 棧,就是那些由編譯器在需要的時候
C++中Public Static和Private Static區別
Static: 靜態成員的關鍵字,表示不能例項化,在你執行的時候他自己已經在記憶體中開闢了塊空間,所以不用new, 可以直接呼叫。類似全域性變數。 特點: 1、訪問static成員,用類而不是例項化的物件; 2、static方法只能訪問static屬性;&nb
C++中引用型別和指標型別區別
引用型別和指標型別區別 引用型別是C++11引入的複合型別,所以C語言並沒有引用型別。 一般在初始化變數時,初始值會被拷貝到新建的物件中。然而在定義引用時,程式把引用和它的初值繫結在一起,而不是將初值拷貝給引用。一旦初始化完成,引用將它的初始值物件繫結在一起。因為
C++中iostream.h和iostream的區別
#include <iostream.h>非標準輸入輸出流 #include <iostream>標準輸入輸出流 C++中為了避免名字定義衝突,特別引入了“名字空間的定義”,即namespace。 1,當代碼中用<iostre
C#中 Flush Dispose和Close的區別!
【個人學習過程記錄,不一定準確】 你寫了一個程式,其中要對硬碟上的一個檔案操作,FileStream fs = new FileStream(fileName)這樣就是建立了一個檔案緩衝流,換句話的意思就是說你通過這條程式,計算機給了一一塊記憶體空間,但是呢這塊記憶體空
學習一下C#中常用集合和陣列的區別,雖然很基礎,但感覺很實用
在C#中,當我們想要儲存一組物件的時候,就會想到用陣列,ArrayList,List這三個物件了。那麼這三者到底有什麼樣的區別呢?我們先來了解一下陣列,因為陣列在C#中是最早出現的。 陣列 陣列有很多的優點,比如說陣列在記憶體中是連續儲存的,所以它的索引速度是非常的快,而且
C#中索引器和屬性的區別
索引器允許類或者結構的例項按照與陣列相同的方式進行索引取值,索引器與屬性類似,不同的是索引器的訪問是帶參的。索引器和陣列比較:(1)索引器的索引值(Index)型別不受限制(2)索引器允許過載(3)索引器不是一個變數索引器和屬性的不同點(1)屬性以名稱來標識,索引器以函式形式
C#中抽象類和介面的區別
大家都容易把這兩者搞混,我也一樣,在聽李建忠老師的設計模式時,他也老把抽象類說成介面,弄的我就更糊塗了,所以找了些網上的資料. 一、抽象類: 抽象類是特殊的類,只是不能被例項化;除此以外,具有類的其他特性;重要的是抽象類可以包括抽象方法,這是普通類所不能的。抽象方法只能聲明於抽象類中,且不包含任何
c++中*p=a和p=&a的區別
#include <iostream> using namespace std; int main() { int a = 10; int *PA = new int;
c++中*p=a和p=&a的區別
#include <iostream> using namespace std; int main() { int a = 10; int *PA = new int; *PA = a; cout << "*PA i
c語言陣列中a和&a[0]的區別
p=a與p=&a[o] 等價解釋: p=&a[0] 與 p=a 等價是指,a和&a[0] 指向同一個地址(只是表示的意義不一樣)。 a是整個元素的地址,也就是陣列的起始地址,而&a[0]是陣列首元素a[0]的地址,所以他們指向的地址是相同的. 這兩者的
int * p =NULL;和*p =NULL的區別a和&a的區別
1.int * p =NULL;和*p =NULL的區別 1 .int * p =NULL int *p=NULL; 定義一個指標變數p,其指向的記憶體裡面儲存的是int型別的資料;再定義變數p的
C語言-陣列a 和&a 的區別
面試經典題目 #include "stdio.h" int main() { int a[5] = { 1,2,3,4,5 }; int *ptr = (int *)(&a + 1); printf("%d,%d", *(a + 1), *(ptr - 1)); /*get