c 指標陣列的的引用問題,c 指標陣列的的引用問題。

2022-05-07 02:45:52 字數 3850 閱讀 5143

1樓:仙戈雅

解答如下:

1、指標陣列名name共有5個元素,分別是name[0],name[1],...name[4] 而它的每一個元素儲存的都是地址,該地址型別為char *。這點我們無需懷疑。

name[0]儲存的是"basic" 這個字串的首地址,即b的地址,那麼也就是順理成章的事了,因為指標陣列的每個元素都是儲存是地址嘛;

同理name[1]儲存的是"fortran" 這個字串的首地址,即f的地址;

後面的元素同理。

2、name[k] 儲存的是第k組字串的首地址,我假設第k組字串是"cobol"

那麼,name[k]就等於"cobol"裡c的地址。 同理*name[k] 就是取它的內容即 'c'

3、temp=name[i] 是取name[i]儲存的地址賦值給temp。因為它們的型別相同,即它們的型別都是char *。

4、是的,你的理解是正確的,指標陣列確實是儲存的是地址,這點無需懷疑。它之所以輸出的是內容而非地址。是因為c++對《流插入運算子進行了過載,如果右運算子(即右側的物件)是字串的地址的話,則會輸出它的內容,直至遇到'\0'為止。

2樓:匿名使用者

1.存放的是地址,沒錯!

2.strcmp(char *a,char *b) 比較的是a,b所指向的字串(也就是以a,b為首地址的字串)的大小。

3.賦值的是地址

4.《是一個操作符函式,他後面的東西是引數,在這裡,也就是name[i],name[i]是一個char型指標,《把他當作字串首地址,所以輸出字串。

《這個函式的原型我沒見過,不過大概應該類似這樣的ostream & operator<< (std::ostream & os, const char * ch)

c++指標陣列怎麼用,還有指標陣列和陣列指標

3樓:匿名使用者

名字可能拗口一點。增加一個」的「就好理解了:」指標的陣列「和」陣列的指標「。

」指標的陣列「和」整型的陣列「類似,就是指一個陣列,其中每一個元素是指標型別。從陣列中取出一個元素(指標)後,再根據這個元素(指標)的指向地址,對實際的記憶體空間進行操作。

」陣列的指標「,就是指一個陣列的首元素的地址,陣列中儲存的元素不知道是什麼型別(整型、浮點型、指標型都有可能)。

4樓:匿名使用者

指標的陣列和整型的陣列是指一個陣列,其中每一個元素是指標型別;

陣列的指標是指一個陣列的首元素的地;

參考例項應用如下:

//注意指標陣列和陣列指標分別是如何指向二維陣列的;

#include

main()

;/* 定義二維陣列m並初始化*/

int (*p)[4];//陣列指標 p是指標,指向一維陣列,每個一維陣列有4個int元素

int i,j;

int *q[3];//指標陣列 q是陣列,陣列元素是指標,3個int指標

p=m; //p是指標,可以直接指向二維陣列printf("--陣列指標輸出元素--/n");

for(i=0;i<3;i++)/*輸出二維陣列中各個元素的數值*/printf("/n");

}printf("/n");

for(i=0;i<3;i++,p++)//p可看成是行指標printf("/n");

printf("--指標陣列輸出元素--/n");

for(i=0;i<3;i++)

q[i]=m[i];//q是陣列,元素q[i]是指標for(i=0;i<3;i++)

printf("/n");

}printf("/n");

q[0]=m[0];

for(i=0;i<3;i++)

printf("/n");

}printf("/n");}

5樓:大倉的春天

這個 你主要看後面兩個字,指標陣列是陣列,每一個元素是指標,而陣列指標,是指標,是指向陣列的指標

指標與陣列 對陣列元素的引用

6樓:匿名使用者

變數p記錄了陣列a的起始地址,a代表陣列a的起始地址,因此a[p-a]=a[0]沒有問題

c++ 如何用new動態分配指標陣列記憶體

7樓:鍵盤未找到

a ** p;

p = new a*[10];

for(int i=0; i<10; i++)p[i] = new a();

8樓:匿名使用者

vector不行嗎?

關於c++中函式傳入陣列引用的問題

9樓:小鑫聊兩性

表示對seq指標的引用

這樣做有一點,可以看一下

void new1(int *ptr, int size)}void new2(int& *ptr, int size)}上面兩段**中,new1是沒有用的,並不能為ptr分配空間而new2可以正常工作

因為new2中使用的是ptr指標的引用

int *ptr只能讓new1這個函式得到ptr的內容int& *ptr不只能讓new2這個函式得到ptr的內容,還使new2函式得到ptr指標的本身

這樣說不知道你能不能理解

10樓:匿名使用者

就是seq是表示引用的,&seq的話用在二維陣列中

11樓:九幽蛙魔

對於形參而言:

1、&表示引用, *表示指標(即你說的陣列),兩者都可以修改而且只能修改所表示的記憶體中這塊空間的內容;

2、如果傳入如你所說的形參形式,表示不僅可以修改這塊記憶體空間的內容,而且指標(即你說的陣列)指向記憶體塊位置也可以被修改,即不僅可以修改seq指向空間的值,也可以修改seq指向的空間地址。

c++中怎麼使用指標訪問陣列元素?

12樓:金色潛鳥

陣列元素 的方括號 是運算子。

a[i] 等於 *(a+i) 就是指標a[i][j] 等於 *(*(a+i)+j)) 就是指標-----------

例子:int a[3][4]=;

int i=2,j=2;

printf("%d %d", a[i][j], *(*(a+i)+j)); // 一個用元素,一個用指標

輸出 11 11

13樓:_______瀲空

string str

*(str+i) = str[i]

14樓:流年市煙花

*(string +i) = string[i]

c++關於指標,陣列和引用的引數傳遞問題

15樓:匿名使用者

編寫函式模板時,經常涉及陣列到指標的轉換(也就是當實參為陣列名的時候)。這時候可以有兩種選擇——使用或不使用引用型別模板形參。

如果不使用引用型別,則陣列實參將當作指向其第一個元素的指標。你的sort函式模板第一個形參可以去掉引用型別,不會出錯,這時候的 t 相當於 int * 和 char *。

如果使用引用型別,則陣列不會轉換為指標。比如你原來寫的 sort 函式模板,t 先後相當於

int [3] 和 char [4]。

16樓:匿名使用者

陣列名其實是到陣列第一個元素的指標

t對應的實參型別是int* 或 char *

原理同指標能接受陣列名傳遞

17樓:匿名使用者

因為你的sort還沒有例項化,你要把t例項化才能呼叫

C語言的問題,指標陣列,c語言指標陣列

改變不了,字串常量是改不了的,你可以試試char p aaaaa p 1 b 這樣是改不了的 只能定義二維陣列才可以改 char p 3 100 這樣才可以改,不要問為什麼,字串常量就是不能改 直接讓指標指向另一個字串即可 p 0 aaaa 這樣定義指標指向的字串是無法修改的。c語言指標陣列 p是i...

c語言陣列(指標)越界訪問,C語言陣列(指標)越界訪問

與編譯器無關,只與記憶體管理機制有關,是作業系統級別的問題,堆疊的讀取方式只是資料結構上的不同,在機器層面,依然是單純的記憶體讀寫操作 陣列越界訪問的危險性不好評估,但確實是最嚴重的危險之一 結果基本上會100 崩潰,但是崩潰的原因很可能不一樣,就算是同一段越界 跑幾遍,原因也可能是不一樣的 指標越...

C語言指標問題,C語言指標問題

include int main void max min sz 0 for i 1 ip i printf max d position d n max,j 1 printf min d position d n min,k 1 return 0 c語言指標問題 10 最好貼上完整程bai序 或標...