欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1459|回復: 3
打印 上一主題 下一主題
收起左側

C語言指針和數組,問了多次還是不明白,請高手來看看哈

[復制鏈接]
回帖獎勵 5 黑幣 回復本帖可獲得 5 黑幣獎勵! 每人限 1 次
跳轉到指定樓層
樓主
ID:879924 發表于 2021-12-24 22:32 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
1>    char arrc[][5] = { {'0','0','0','0','\0'},{'0','0','0','0','\0'}, {'0','0','0','0','\0'}, {'0','0','0','0','\0'}, {'0','0','0','0','\0'} };
2>    char* ptrc[5] = { {'0','0','0','0','\0'}, {'0','0','0','0','\0'}, {'0','0','0','0','\0'}, {'0','0','0','0','\0'}, {'0','0','0','0','\0'} };
3>    char arrs[][5] = { "0000","0000","0000","0000","0000" };
4>    char* ptrs[5] = { "0000","0000","0000","0000","0000" };
1.請問這四種方式有什么不同?
2.請問字符串就是字符數組+空字符這種說法正確嗎?書上都是這么說,但如果正確的話,為什么第2個賦值是錯誤的?
3.如果把1和2的值改成下面這樣呢?也就是在'\0'后面再加一個'0',會被截斷嗎?但是訪問的話,可以訪問到這個'0'啊!
{ {'0','0','0','0','\0','0'}, {'0','0','0','0','\0','0'}, {'0','0','0','0','\0','0'}, {'0','0','0','0','\0','0'}, {'0','0','0','0','\0','0'} };

感謝!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:908826 發表于 2021-12-25 08:45 | 只看該作者
13都是二維數組,34是指針數組,數組里面的每一個元素都是指針。你最好找本書c或者c++仔細看看這里。"abcd"和'a''b''c''d''\0'是一樣的,拆開寫最后一個是結束符。

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

板凳
ID:844772 發表于 2021-12-25 10:31 | 只看該作者
指針和數組在使用過程中比較類似,但不能像數組在定義時賦值。
簡單理解,指針要給它地址,而{'0','0','0','0','\0'},無法轉換成一個字符指針類型的值,所以報錯。數組定義時,已經分配了地址(或者說存儲空間),所以只要保存字符就行了。
但你可以這么用 char* ptrc =arrcr; 實質是將字符數組(左值)第一個元素的地址取出來,然后存在字符指針類型的變量里。也就是說,能存在p中的值只能是字符指針類型的值。
另外,習慣字符串后面再加一個'0',只要為了程序判斷結尾方便,并不是'\0'必須在后面,你后邊你愛用啥都行,但寫程序判斷或顯示時,不方便。

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

地板
ID:879924 發表于 2021-12-25 21:19 | 只看該作者
glinfei 發表于 2021-12-25 10:31
指針和數組在使用過程中比較類似,但不能像數組在定義時賦值。
簡單理解,指針要給它地址,而{'0','0','0' ...

講解非常明確。!感謝
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表