女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

數(shù)組名之間可以直接賦值嗎

學(xué)益得智能硬件 ? 來源:學(xué)益得智能硬件 ? 2024-11-26 11:23 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

數(shù)組之間的賦值能不能直接使用等于號?比如這樣的代碼。

int main()
{
    int a[5] = {1, 2, 3, 4, 5}; 
    int b[5] = {0};


    b = a;
    
return 0;
}

想把數(shù)組 a 里面的數(shù)據(jù)全部賦值給 b,寫成 b = a 行不行?

和這個(gè)問題類似的還有,數(shù)組名為什么不能進(jìn)行 ++ 操作?

chararray[5]={0};
array++;

比如這樣的表達(dá)式,array++ 在編譯的時(shí)候就會提示錯(cuò)誤:

root@Turbo:~# gcc test.c -o test
test.c: In function ‘main’:
test.c:18:11: error: assignment to expression with array type
   18 |         b = a;
      |           ^
test.c:22:14: error: lvalue required as increment operand
   22 |         array++;
      |              ^~
root@Turbo:~#

需要一個(gè)左值作為操作數(shù),換句話說,數(shù)組名不能作為左值。

關(guān)于數(shù)組名,官方的解釋是:

/*
 * Except when it is the operand of the sizeof operator, or typeof 
 * operators, or the unary & operator,or is a string literal used 
 * to initialize an array, an expression that has type "array of 
 * type" is converted to an expression with type "pointer to type" 
 * that points to the initial element of the array object and is not
 * an lvalue. If the array object has register storage class, the be
 * havior is undefined.
 * */

除了跟 sizeof、typeof、& 這些運(yùn)算符一起使用,數(shù)組類型通常被轉(zhuǎn)換成指針類型,指向數(shù)組的第一個(gè)元素,并且它不能作為左值,不能作為左值,也就是不能被修改。

其實(shí)也很好理解,數(shù)組被初始化后,已經(jīng)分配了內(nèi)存,數(shù)組名就表示這塊內(nèi)存的地址,如果數(shù)組名被修改了,整個(gè)數(shù)組都要跟著移動(dòng),顯然不合適。

那 array + 1 這個(gè)表達(dá)式有沒有問題?

當(dāng)然沒有問題,array++ 和 array + 1 是兩碼事。

array++ 會修改 array 的值,但是 array + 1 只是個(gè)表達(dá)式,并不會修改 array 的值,如果寫成 array = array + 1 才會出問題。

for (int i = 0; i < 5; i++)
{
????b[i]?=?a[i];
}


//或者?
memcpy(b,?a,?sizeof(int)?*?5);

最后就是關(guān)于數(shù)組的賦值,在C語言中沒有捷徑,只能通過循環(huán)逐個(gè)元素賦值,數(shù)組名不能直接賦值。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4900

    瀏覽量

    70715
  • 數(shù)組
    +關(guān)注

    關(guān)注

    1

    文章

    420

    瀏覽量

    26539

原文標(biāo)題:數(shù)組名之間能否直接賦值

文章出處:【微信號:學(xué)益得智能硬件,微信公眾號:學(xué)益得智能硬件】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    matlab appdesigner 表格組件賦值問題,求助

    如上圖所示,我在用matlab2021Ra APP模塊進(jìn)行編程的時(shí)候,想在表格中調(diào)入自己編寫的結(jié)構(gòu)數(shù)組,我從網(wǎng)上AI了一個(gè)程序語句,看著沒問題,但是就是給表格賦值不了,還請各位大神幫忙看一下這個(gè)是怎么回事,我是初學(xué)者,請各位幫忙看看
    發(fā)表于 07-12 11:45

    在testbench中如何使用阻塞賦值和非阻塞賦值

    本文詳細(xì)闡述了在一個(gè)testbench中,應(yīng)該如何使用阻塞賦值與非阻塞賦值。首先說結(jié)論,建議在testbench中,對時(shí)鐘信號(包括分頻時(shí)鐘)使用阻塞賦值,對其他同步信號使用非阻塞賦值
    的頭像 發(fā)表于 04-15 09:34 ?651次閱讀
    在testbench中如何使用阻塞<b class='flag-5'>賦值</b>和非阻塞<b class='flag-5'>賦值</b>

    給uint32_t數(shù)組填充整型值,除使用循環(huán)賦值外有沒有c庫函數(shù)可以實(shí)現(xiàn)?

    給uint32_t數(shù)組填充整型值,除使用循環(huán)賦值外有沒有c庫函數(shù)可以實(shí)現(xiàn)
    發(fā)表于 03-07 17:05

    請問LabView中如何直接發(fā)送二維數(shù)組到DMD上顯示?

    LabView中如何直接發(fā)送二維數(shù)組到DMD上顯示。 在LabView中,調(diào)用int LoadData(UCHAR*RowData,long length)遇到兩個(gè)問題,1 二維數(shù)組如何輸入到
    發(fā)表于 02-27 07:30

    數(shù)組的下標(biāo)為什么可以是負(fù)數(shù)

    a[3],數(shù)組名 a 作為數(shù)組首元素地址,下標(biāo) 3 表示從這個(gè)地址開始向后移動(dòng) 3 個(gè)元素,至于具體是幾個(gè)字節(jié),得看什么元素。 所以 a[3] 完全等價(jià)于 *(a + 3),甚至把代碼寫成 3[a] 編譯
    的頭像 發(fā)表于 12-20 11:18 ?496次閱讀

    指針數(shù)組和二維數(shù)組有沒有區(qū)別

    指針數(shù)組和二維數(shù)組有沒有區(qū)別?比如這樣的兩個(gè)代碼。 int main(){ char *s1[] = { "hello", "world", "total" }; char s2[][6
    的頭像 發(fā)表于 11-24 11:12 ?543次閱讀

    C語言數(shù)組應(yīng)用計(jì)算機(jī)導(dǎo)論A第6講:數(shù)組

    C語言數(shù)組應(yīng)用計(jì)算機(jī)導(dǎo)論A第6講:數(shù)組
    發(fā)表于 11-20 15:33 ?1次下載

    鎧裝光纜可以直接埋地嗎

    鎧裝光纜可以直接埋地。直埋是光纜鋪設(shè)的一種常見方式,即將光纜直接埋入地下,無需額外的管道或槽道。鎧裝光纜具有抗壓、抗拉、防水等特性,外層材料能夠很好地保護(hù)光纜,使其適合直接埋地。然而,
    的頭像 發(fā)表于 11-06 10:09 ?1282次閱讀

    逆變器輸出可以直接并網(wǎng)嗎

    商業(yè)用電。那么,逆變器輸出可以直接并網(wǎng)嗎?這個(gè)問題需要從多個(gè)方面進(jìn)行分析。 首先,我們需要了解并網(wǎng)的概念。并網(wǎng)是指將分布式發(fā)電系統(tǒng)(如太陽能光伏系統(tǒng))產(chǎn)生的電能直接輸送到公共電網(wǎng),與電網(wǎng)中的電能進(jìn)行交換。這種模式
    的頭像 發(fā)表于 10-18 09:25 ?1991次閱讀

    C語言指針詳細(xì)解析

    指向數(shù)組元素。 在數(shù)組中,數(shù)組名即為該數(shù)組的首地址,對該指針進(jìn)行加減,就可以實(shí)現(xiàn)指針訪問數(shù)組元素
    發(fā)表于 09-14 10:03

    labview字符串數(shù)組轉(zhuǎn)化為數(shù)值數(shù)組

    在LabVIEW中,將字符串數(shù)組轉(zhuǎn)換為數(shù)值數(shù)組是一項(xiàng)常見的任務(wù),尤其是在處理數(shù)據(jù)采集、信號處理或用戶輸入時(shí)。 1. 理解LabVIEW的數(shù)據(jù)類型 在開始之前,了解LabVIEW中的數(shù)據(jù)類型是非
    的頭像 發(fā)表于 09-04 17:47 ?5641次閱讀

    嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-shell腳本編寫之數(shù)組

    Shell腳本也支持使用數(shù)組。1、數(shù)組定義方式如下Arr=(a0 a1 a2…an)Arr是數(shù)組名稱,成員使用()括起來,其中每個(gè)成員之間使用空格隔離。另一種定義方式如下所示,每個(gè)成員
    發(fā)表于 09-03 14:23

    飛凌嵌入式ElfBoard ELF 1板卡-shell腳本編寫之數(shù)組

    起來,其中每個(gè)成員之間使用空格隔離。另一種定義方式如下所示,每個(gè)成員單獨(dú)賦值:Arr[0]=a0Arr[1]=a1Arr[2]=a2…Arr[n]=an2、數(shù)組成員使用可以將每個(gè)成員當(dāng)
    發(fā)表于 08-30 09:25

    嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-shell腳本編寫之變量

    變量是任何一種編程語言都必不可少的組成部分,變量用來存放各種數(shù)據(jù)。腳本語言在定義變量時(shí)通常不需要指明類型,直接賦值可以,Shell變量也遵循這個(gè)規(guī)則。每一個(gè)變量的值都是以字符串的形式存儲。1
    發(fā)表于 08-30 09:21

    飛凌嵌入式ElfBoard ELF 1板卡-shell腳本編寫之變量

    變量是任何一種編程語言都必不可少的組成部分,變量用來存放各種數(shù)據(jù)。腳本語言在定義變量時(shí)通常不需要指明類型,直接賦值可以,Shell變量也遵循這個(gè)規(guī)則。每一個(gè)變量的值都是以字符串的形式存儲。1
    發(fā)表于 08-29 11:04