การประกาศครั้งแรกบอกคอมไพเลอร์ที่someArrayมีความยาวอย่างน้อย 100 องค์ประกอบ สามารถใช้สำหรับการปรับให้เหมาะสม ยกตัวอย่างเช่นมันก็หมายความว่าจะไม่someArrayNULL
โปรดทราบว่ามาตรฐาน C ไม่ต้องการให้คอมไพเลอร์วินิจฉัยเมื่อการเรียกใช้ฟังก์ชันไม่เป็นไปตามข้อกำหนดเหล่านี้ (กล่าวคือเป็นพฤติกรรมที่ไม่ได้กำหนดความเงียบ)
การประกาศครั้งที่สองเป็นการประกาศsomeArray(ไม่ใช่someArrayองค์ประกอบ!) ในฐานะ const เช่นคุณไม่สามารถเขียนsomeArray=someOtherArrayได้ char * const someArrayมันเป็นเช่นเดียวกับถ้าพารามิเตอร์ได้
ไวยากรณ์นี้สามารถใช้งานได้เฉพาะภายในสุด[]ของอาร์เรย์เครื่องมือประกาศในรายการพารามิเตอร์ฟังก์ชัน มันจะไม่สมเหตุสมผลในบริบทอื่น  
ข้อความมาตรฐานซึ่งครอบคลุมทั้งสองกรณีข้างต้นอยู่ใน C11 6.7.6.3/7 (คือ 6.7.5.3/7 ใน C99):
  การประกาศพารามิเตอร์เป็น '' array of type '' จะถูกปรับเป็น '' ตัวชี้ที่มีคุณสมบัติเป็นประเภท '' โดยที่ qualifier ประเภท (ถ้ามี) เป็นพารามิเตอร์ที่ระบุภายใน[และมา]ของประเภทอาร์เรย์ หากคำหลักแบบสแตติกปรากฏขึ้นภายใน[และที่มา]ของประเภทอาเรย์ดังนั้นสำหรับการเรียกใช้ฟังก์ชั่นแต่ละครั้งค่าของการโต้แย้งที่แท้จริงจะต้องให้การเข้าถึงองค์ประกอบแรกของอาร์เรย์ที่มีองค์ประกอบอย่างน้อยที่สุดตามที่ระบุโดย การแสดงออกขนาด
               
              
int foo(struct bar [static 1]);แทนint foo(struct bar *);ลายเซ็นสำหรับฟังก์ชันที่ไม่ยอมรับพอยน์เตอร์ NULL หรือไม่ (ฉันรู้ว่า gcc มีไวยากรณ์ที่ไม่เป็นทางเลือกอื่นในการติดธงทำหน้าที่ดังกล่าวเพื่อให้ผู้แปลสามารถให้คำเตือน .. )