第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

c語言什么時候使用數(shù)組,什么時候使用指針?

c語言什么時候使用數(shù)組,什么時候使用指針?

C
青春有我 2019-04-09 05:04:36
c語言什么時候使用數(shù)組,什么時候使用指針?
查看完整描述

4 回答

?
富國滬深

TA貢獻(xiàn)1790條經(jīng)驗 獲得超9個贊

任何時候都可以使用數(shù)組,使用指針。

定義時,通常只有字符指針,和字符數(shù)組指針直接定義。用來表示字符串或字符串?dāng)?shù)組。
其他一般定義數(shù)組。操作時用指針或數(shù)組。

其他指針,多半用在參數(shù)傳遞,數(shù)據(jù)結(jié)構(gòu)內(nèi)部(不確定需要內(nèi)存的大小,或者鏈表,二叉樹等鏈?zhǔn)浇Y(jié)構(gòu))的時候。
還有一種是有些函數(shù)參數(shù)就是指針,這時定義一個指針,來操作傳進(jìn)來的指針參數(shù)比較好。

指針作為參數(shù),有一下幾種用法,

1)當(dāng)作數(shù)組用,用來獲取或設(shè)置數(shù)組元素。
2)把一個比較長的數(shù)據(jù)結(jié)構(gòu)傳入函數(shù),只需要一個指針就夠了。
3)傳入變量的地址,用來讀取或修改變量的值,主要是為了修改用。

直接定義一個不指向任何對象的指針,并且也從不給他賦值,沒什么意義;

指針要么指向數(shù)組,要么指向變量,要么動態(tài)申請內(nèi)存。
NULL指針,只是一個方便的指針,表示不指向任何對象。

真正有用的還是指向具體對象的指針。
如果定義了一個指針,使用時要讓他指向一個具體對象,當(dāng)需要他不指向什么對象的時候,給他賦值為NULL;
PS:
C語言,數(shù)組名只是一個指針常量而已,離開定義可見處,數(shù)組大小的信息就不存在了。
只有定義完全可見的地方,才可以獲得數(shù)組的大小。
數(shù)組作為函數(shù)的參數(shù),和外部引用聲明都不能獲得數(shù)組的大小。
參數(shù)只能傳遞指針,參數(shù)的大小只是指針的大?。?br/>只能看到聲明的地方,獲取數(shù)組大小的努力,只能換來錯誤。

void fun1(int a[10]) //<==> void fun1(int a[]) <==>void fun1(int *a)
{
}
void fun2(int [10][10])// <==>void fun2(int a[][10])<==> void fun2(int (*a)[10])
{
}




查看完整回答
反對 回復(fù) 2019-04-10
?
幕布斯7119047

TA貢獻(xiàn)1794條經(jīng)驗 獲得超8個贊

個人認(rèn)為,當(dāng)你需要某一變量需要一直存在的話,那么程序初始化時就可以直接使用數(shù)組之類的;
而當(dāng)你需要對已存在于內(nèi)存的某些量做改變時,則適宜使用指針。
這里需要注意的是,使用數(shù)組的前提是內(nèi)存靜態(tài)分配,其大小是不可改變的;所以若要求動態(tài)分配的話,還是需要使用指針的。希望對你有所幫助。

查看完整回答
反對 回復(fù) 2019-04-10
?
慕勒3428872

TA貢獻(xiàn)1848條經(jīng)驗 獲得超6個贊

數(shù)組指針--指向數(shù)組的指針,是一個指針,其指向的類型是數(shù)組;指針數(shù)組--元素為指針的數(shù)組,是一個數(shù)組,其中的元素為指針。仔細(xì)研讀下面的程序:
#include <stdio.h>

int
main(void)
{
int a[2][2] = {{1,2},{3,4}};
int (* p)[2];
char * s[2] = {"hello", "world"};

p = a;
printf("%d, %d, %d, %d\n", (*p)[0], (*p)[1], (*(p+1))[0], (*(p+1))[1]);
printf("%s %s\n", s[0], s[1]);

return 0;
}


查看完整回答
反對 回復(fù) 2019-04-10
?
千巷貓影

TA貢獻(xiàn)1829條經(jīng)驗 獲得超7個贊

如果你想靜態(tài)定義的時候你可以使用數(shù)組,動態(tài)定義的話可以使用指針,可以通過關(guān)鍵字new來給指針分配內(nèi)存空間,例如,
char arr[10] 你無論用不用得完這數(shù)組,這空間都會被占用
但是如果你定義 char *arr;
然后再根據(jù)你要存的數(shù)據(jù)的大少分配內(nèi)存,就省空間咯!

查看完整回答
反對 回復(fù) 2019-04-10
  • 4 回答
  • 0 關(guān)注
  • 1088 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號