char *str; for (str = "abcdefg"; *str != '/0'; str++) { /* process a character here */ }
C的for(...)語(yǔ)法提供了一種寫循環(huán)的抽象方法,但測(cè)試 *str 是否為空(null)字符需要程序員了解字符串內(nèi)部結(jié)構(gòu)的細(xì)節(jié).這讓C看起來(lái)像低級(jí)(low-level)語(yǔ)言.更高級(jí)的語(yǔ)言是通過(guò)它們更具彈性的迭代器支持來(lái)實(shí)現(xiàn)的.考慮下面的 sh 命令行腳本:
#!/bin/sh for i in *.[ch]; do # ... here would be something to do for each file done
當(dāng)前目錄下所有的C源文件和頭文件都將被處理,由命令行shell來(lái)一個(gè)個(gè)地?fù)烊∥募⑻幚砥渲械募?xì)節(jié).我想這是在比 C 要高的級(jí)別上工作,你覺(jué)得呢?