想看国内的还是国外的?
国内的看谭浩强的《c语言程序设计》,虽然褒贬不一,不过依然是本很好的教材。国外的就选《C Primer Plus》,C语言的入门经典,很厚的一本书(初学者千万别被吓到……),课后习题一定要都自己做了,这本书会让你打下很牢的基础。
综合来说,毕竟是国人,先看看谭浩强的吧,《C Primer Plus》对初学者来说啃起来很难,看完谭的再看《C Primer Plus》会好很多。
注:另外也可以看《Head First C》,虽然我没看过,但Head First 系列评价一直不错,我看的是这系列中的Python教程,编书的风格很好,如果不喜欢教科书式的枯燥内容,Head First系列就是不错的选择,让你的学习不那么枯燥并且快速入门。看完后再看《C Primer Plus》(当然其他c语言基础教程书也行),绝对可以事半功倍。
看到别的评论说到指针,虽说对初学者来说有点早,不过我也补充一下(不知道指针的话可以先略过下面这段话):对于指针,记住一句话:“指针中存的是地址。”这也是指针的定义,永远不要忘了这句话,万变不离其宗,指针函数、函数指针、数组指针、指针数组、常量指针、指针常量、指向常量的常量指针……很头疼的东西,但不要觉得它难,觉得难只会让它越来越难,第一次学学不透不要紧,知道基本概念即可。学完了c再回头来看指针,抓住它定义的那句话,无非就是一个存地址的。以前我也混乱过,然后清晰了,然后又混乱……周而复始,混乱的时候无一例外都是被指针指来指去搞晕了,而忘记了它的定义——一个存地址的。后来看了一本书,名字我忘了,好像是C和指针,很薄的一本书,很经典的教材,这才算彻底理清了指针,也把指针中存的是地址这句话真正记在了心上,然后任何复杂的例子都是一眼明了,当同学还在为指针困惑时,我也在为他困惑:这么简单的例子有什么好困惑的?(哈哈,当时确实被同学们奉为大神了,允许我装一下)。所以对于指针不要怕,记住它的本意,再复杂的例子也可以由里到外慢慢肢解,第一遍看不透不要急眼,过后再看,有了基础可以再找一找c和指针这本书,它会让你豁然开朗。
有些人说谭浩强的教材好,但是我觉得那教材虽然好但还是有些缺陷,建议你指针前的内容看他的教材,然后从指针开始以他的教材和网上的资料配着看,指针这块你可以考虑多逛逛别人的博客和论坛,上面有不少有用的心得和个人理解,这些都是书上所缺乏的,还有就是多找点实例练习。