- N +

常量指針和指針常量的區別 const int #p和int #const p

各位老鐵們,大家好,今天由我來為大家分享常量指針和指針常量的區別,以及p的相關問題知識,希望對大家有所幫助。如果可以幫助到大家,還望關注收藏下本站,您的支持是我們最大的動力,謝謝大家了哈,下面我們開始吧!

為什么C語言字符串常量可以當做指針

在C語言中并沒有字符串這個類型。所說的字符串就是字符數組。也就是char類型的數組。與普通數組不同的,字符串必須以'\0'作為結束符。而在C語言中,類型為T的一維數組,其首地址等效于該類型的一維指針,即T*型。于是字符串,也就是字符數組,首地址就可以當做char*型使用了。事實上,在庫函數以及大多數使用到字符串作為參數的函數中,其參數都是char*型的。

指針和指針變量有什么區別呢

用例子來看一下。

inta=3;

int*p;

p=&a;

現在來看一下。a=3這個式子先解釋一下

等式右邊是常量,左邊是變量。

同理的

p=&a,左邊的是指針變量,右邊的是指針

指針的基本概念:為了區別內存的不同位置,內存被分成字節,內存的全部字節順序地賦予一個稱為地址的編號。程序中的變量將在內存中占據一定的內存字節,在這些字節中存儲的數據信息稱為變量的內容。

一個變量占用連續的若干個內存字節時,最前面的一個字節的地址就作為該變量的地址。指針就是內存地址,是變量的地址,或函數的入口地址。變量的地址在程序執行時,起著非常重要的作用。當計算機在計算含有變量的表達式時,計算機按變量的地址取出其內容,并按變量的地址將計算結果存入到變量占據的內存中。

如代碼:intx=l;x=x+2;其中語句“x=x+2;”中的第一個x涉及到變量x占據的內存,第二個x是引用變量x的內容。該語句的意義是“取X的內容,完成加上2的計算,并將計算結果存入變量X占據的內存中。”

c語言的指針部分*p與p的區別是什么

c語言的指針部分*p與p區別如下:

1、作用不同*p表示此指針指向的內存地址中存放的內容。p是一個指針變量的名字,表示此指針變量指向的內存地址。

2、輸出內容的格式不同*p常用在一個和指針類型一致的變量或者常量。p輸出一個指針的地址,通常是輸出一個16進制的數。

3、效果不同*p是讓編譯器從指定的地址中讀取出數據。p是用來存放要讀取數據的地址。

常量指針和指針常量有什么區別

有區別。區別是:常量指針和指針常量是指針相關的數據類型。常量指針是指將一個指針定義為不能修改其指向變量的指針,也就是指針所指向變量的值不能通過該指針修改。

而指針常量則指的是不能修改指針本身的值,即指針所指向的變量不能改變,指針本身可以指向其他變量。

數組和指針之間有什么關系

1、指針:系統為某一個變量開辟單元格,指針便指向此單元格的變量值。

2、數組:系統為某一組數開辟一組單元格,數組首地址便是你定義的數組變量名。

數組和指針的唯一區別是,不能改變數組名稱指向的地址。

對于數組來說,數組的首地址,也可以用指針來表示操作,如:

inta[10];

int*p,n;

p=a;

對第一個元素取值,可以用幾種方法:

n=a[0];

n=*p;

n=p[0];

n=*(p+0);

但是以下語句則是非法的:

readings=totals;//非法!不能改變readingstotals=dptr;//非法!不能改變totals

數組名稱是指針常量。不能讓它們指向除了它們所代表的數組之外的任何東西。

擴展資料

下面的程序定義了一個double數組和一個double指針,該指針分配了數組的起始地址。隨后,不僅指針符號可以與數組名稱一起使用,而且下標符號也可以與指針一起使用。

intmain()

{

constintNUM_COINS=5;

doublecoins[NUM_COINS]={0.05,0.1,0.25,0.5,1.0};

double*doublePtr;//Pointertoadouble

//AssigntheaddressofthecoinsarraytodoublePtr

doublePtr=coins;

//Displaythecontentsofthecoinsarray

//Usesubscriptswiththepointer!

cout<<setprecision(2);

cout<<"Herearethevaluesinthecoinsarray:\n";

for(intcount=0;count<NUM_COINS;count++)

cout<<doublePtr[count]<<"";

//Displaythecontentsofthecoinsarrayagain,butthistimeusepointernotationwiththearrayname!

cout<<"\nAndheretheyareagain:\n";

for(intcount=0;count<NUM_COINS;count++)

cout<<*(coins+count)<<"";

cout<<endl;

return0;

}

程序輸出結果:

Herearethevaluesinthecoinsarray:0.050.10.250.51Andheretheyareagain:0.050.10.250.51

當一個數組的地址分配給一個指針時,就不需要地址運算符了。由于數組的名稱已經是一個地址,所以使用&運算符是不正確的。但是,可以使用地址運算符來獲取數組中單個元素的地址。

關于常量指針和指針常量的區別的內容到此結束,希望對大家有所幫助。

返回列表
上一篇:
下一篇: