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序 或標...