色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

數組名之間可以直接賦值嗎

學益得智能硬件 ? 來源:學益得智能硬件 ? 2024-11-26 11:23 ? 次閱讀

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

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


    b = a;
    
return 0;
}

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

和這個問題類似的還有,數組名為什么不能進行 ++ 操作?

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

比如這樣的表達式,array++ 在編譯的時候就會提示錯誤:

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:~#

需要一個左值作為操作數,換句話說,數組名不能作為左值。

關于數組名,官方的解釋是:

/*
 * 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、& 這些運算符一起使用,數組類型通常被轉換成指針類型,指向數組的第一個元素,并且它不能作為左值,不能作為左值,也就是不能被修改。

其實也很好理解,數組被初始化后,已經分配了內存,數組名就表示這塊內存的地址,如果數組名被修改了,整個數組都要跟著移動,顯然不合適。

那 array + 1 這個表達式有沒有問題?

當然沒有問題,array++ 和 array + 1 是兩碼事。

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

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


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

最后就是關于數組的賦值,在C語言中沒有捷徑,只能通過循環逐個元素賦值,數組名不能直接賦值。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 代碼
    +關注

    關注

    30

    文章

    4823

    瀏覽量

    68894
  • 數組
    +關注

    關注

    1

    文章

    417

    瀏覽量

    26001

原文標題:數組名之間能否直接賦值

文章出處:【微信號:學益得智能硬件,微信公眾號:學益得智能硬件】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    數組的下標為什么可以是負數

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

    指針數組和二維數組有沒有區別

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

    C語言指針詳細解析

    指向數組元素。 在數組中,數組名即為該數組的首地址,對該指針進行加減,就可以實現指針訪問數組元素
    發表于 09-14 10:03

    labview字符串數組轉化為數值數組

    在LabVIEW中,將字符串數組轉換為數值數組是一項常見的任務,尤其是在處理數據采集、信號處理或用戶輸入時。 1. 理解LabVIEW的數據類型 在開始之前,了解LabVIEW中的數據類型是非
    的頭像 發表于 09-04 17:47 ?2761次閱讀

    嵌入式學習-飛凌嵌入式ElfBoard ELF 1板卡-shell腳本編寫之數組

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

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

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

    為什么給io賦值時常看到 =和|=,而不是直接=呢?

    如題,為什么給io賦值時常看到 =和|=,而不是直接=呢?
    發表于 04-30 06:55

    深入探索KUKA KRL中的數組應用

    如果 CHAR 類型數組的所有數組元素都擁有相同的字符串,則不必單獨初始化每個數組元素。忽略右側的數組下標。(對于一維數組下標,不寫下標。)
    的頭像 發表于 04-18 10:37 ?1322次閱讀
    深入探索KUKA KRL中的<b class='flag-5'>數組</b>應用

    鴻蒙TypeScript入門學習第11天【Array(數組)】

    數組對象是使用單獨的變量來存儲一系列的值。 數組非常常用。
    的頭像 發表于 04-09 14:38 ?1218次閱讀
    鴻蒙TypeScript入門學習第11天【Array(<b class='flag-5'>數組</b>)】

    為什么指針之間不要隨意賦值呢?

    指針之間也不能隨意賦值
    的頭像 發表于 03-28 17:13 ?739次閱讀
    為什么指針<b class='flag-5'>之間</b>不要隨意<b class='flag-5'>賦值</b>呢?

    mapgis如何給區屬性賦值

    地進行數據分析和可視化。 在MapGIS中給區屬性賦值有多種方法,下面將詳細介紹其中的幾種常用方法。 1.手動賦值 手動賦值是最直接和簡單的方法。首先,在MapGIS中打開需要進行屬性
    的頭像 發表于 02-23 17:49 ?2383次閱讀

    proteus屬性賦值工具怎么用

    Proteus是一種電路設計和仿真軟件,在進行電路設計和仿真時,屬性賦值是非常重要的步驟。屬性賦值工具可以幫助用戶快速有效地配置電路元件的屬性,從而實現電路的準確仿真。下面是關于Proteus屬性
    的頭像 發表于 02-23 17:19 ?4797次閱讀

    verilog同步和異步的區別 verilog阻塞賦值和非阻塞賦值的區別

    Verilog中同步和異步的區別,以及阻塞賦值和非阻塞賦值的區別。 一、Verilog中同步和異步的區別 同步傳輸和異步傳輸是指數據在電路中傳輸的兩種方式,它們之間的區別在于數據傳輸的時間控制方式。 同步傳輸:同步傳輸是通過時鐘
    的頭像 發表于 02-22 15:33 ?1814次閱讀

    數組和鏈表在內存中的區別 數組和鏈表的優缺點

    內存中的存儲方式: 數組是一種連續存儲的數據結構,它將元素存儲在相鄰的內存位置中。這使得數組的訪問效率高,可以通過下標來直接訪問任何一個元素。 鏈表是一種離散存儲的數據結構,它將元素
    的頭像 發表于 02-21 11:30 ?1108次閱讀

    G10指令可以對參數進行賦值,位型參數可以嗎?

    G10指令可以對參數進行賦值,位型參數可以嗎? G10指令是用于在加工程序中進行參數賦值的指令。它可以用于指定數值型參數或位型參數。 首先,
    的頭像 發表于 02-18 10:49 ?935次閱讀
    主站蜘蛛池模板: 亚洲国产在线观看免费视频 | 特级毛片全部免费播放免下载 | 新金梅瓶玉蒲团性奴3 | 国产性色AV内射白浆肛交后入 | 国产成人精选免费视频 | 亚洲国产成人在线 | 51精品国产AV无码久久久 | 人妻洗澡被强公日日澡 | 91伊人久久大香线蕉 | swag合集120部 | 亚洲视频在线观看网站 | 亚洲精品动漫免费二区 | 精品国产乱码久久久久久夜深人妻 | 暖暖视频免费高清在线观看 视频 | 午夜勾魂曲 | 日本特黄的免费大片视频 | 国产老肥熟xxxx | 国产成人精品免费青青草原app | 999久久免费高清热精品 | 国内精品偷拍在线观看 | 校园男男高h小黄文 | 精品国产精品人妻久久无码五月天 | 全黄h全肉细节文在线观看 全黄H全肉细节文短篇 | 岛国片免费看 | 99精品久久 | 亚洲国产成人99精品激情在线 | 在线自拍亚洲视频欧美 | 西西人体大胆牲交PP6777 | 俄罗斯女人Z0Z0极品 | 亚洲成色WWW久久网站夜月 | 99国产精品久久久久久久日本竹 | 综合色就爱涩涩涩综合婷婷 | 日本边添边摸边做边爱边 | xart欧美一区在线播放 | 国产又粗又猛又爽又黄的免费视频 | 亚洲欧美在无码片一区二区 | 国产在线精品一区二区在线看 | 在教室伦流澡到高潮H女攻视频 | 欧美激情一区二区三区视频 | 亚洲电影不卡 | 老师别揉我胸啊嗯小说 |