iT邦幫忙

2025 iThome 鐵人賽

DAY 17
0
Software Development

用leetcode系統化學習C語言系列 第 17

練習 C 語言指標與陣列操作題目

  • 分享至 

  • xImage
  •  

昨天在1342題中,我用指標改寫簡單的數字運算,體會了「用指標間接操作變數」的基本觀念。今天我們要更進一步,把指標應用在「陣列的存取」上,這樣就能把指標和陣列的關係連起來。

leetcoee1295.題目介紹:Find Numbers with Even Number of Digits
給一個整數陣列,請回傳有「偶數位數」的數字總共有幾個。
範例:
輸入:nums = [12,345,2,6,7896]
過程:12 (2 位數)、345 (3 位數)、2 (1 位數)、6 (1 位數)、7896 (4 位數)
輸出:2 (因為 12 和 7896 是偶數位數)
https://ithelp.ithome.com.tw/upload/images/20251001/20169489sSrlFB295v.png
心得
這一題讓我第一次真正體會到 指標與陣列的關係:
在 for 裡面,我沒有用 nums[i],而是用了 *(p + i),這代表「從指標 p 出發,往後移 i 個元素的位置,再取出它的值」。換句話說,nums[i] 和 *(p + i) 完全等價,只是寫法不同。
雖然表面上看起來更麻煩,但這種寫法能幫助我真正理解陣列就是一段連續記憶體,而指標則是存放記憶體位置的變數 這個觀念會在我們之後用 malloc 配置陣列時變得更自然。


上一篇
入門指標題目練習
下一篇
練習 C 語言指標與 malloc 配置新陣列
系列文
用leetcode系統化學習C語言24
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言