C语言自学的问题。

SphinxFJQ 2011-06-21 08:32:51
大家好,小弟今天注册了个CSDN的ID,抱着试一试的心理。以前有不会的就会去百度发帖求解,忽然发现什么垃圾的人都有,所问非所答,简直就是不知所谓,满意的答案一个都没有,完全是浪费我发帖的时间,甚至是挑战我的耐心...不啰嗦了。
近日里忽然就迷上了C语言,简单的看过一遍谭老的红皮书《c程序设计》,书后只要不是太让我觉得傻瓜的题,几乎都做了。感觉能学到书里的6-7成吧。自己也动手做了些小东西,只要是书里提到的东西,几乎都用过了。但是发现还是什么都做不了。很是迷惑,很是苦恼。以前用delphi的时候,用组件还能拼拼凑凑的弄个小东西出来,这c语言,,,我咋啥也不会干呢?书里讲的很是枯燥,都是语法和细节,没有一点有意思的小程序实例。不过却学到了很多东西,比如啊,高中 大学那会根本就不听课,什么三元一次方程的解啊,微积分中的定积分啊.....请问大侠们,很多人用c语言写网络 写驱动 写病毒,我咋.....其实我是想说啊,我看过了谭老的书以后,用不用在看看700多页的那个C Primer Plus?我想把C语言的基础打好,但是真的是迷茫了,不知道怎么练,怎么学了。应该看看什么书呢?高手教我.....
...全文
141 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
kye_0 2011-06-21
  • 打赏
  • 举报
回复
我记得红皮的是C++
绿皮的是C语言


我觉得主要看你在那个平台发展了,如果是WIN的话,那就学学window编程。学学VC等等
赵4老师 2011-06-21
  • 打赏
  • 举报
回复
bc++3.1 帮助里面对每个函数都有一小段能拷贝出来运行看效果的例子程序。非常适合初学C语言。相比较而言VC带的帮助MSDN就没有。http://download.csdn.net/source/2805028

英语也是一门计算机语言的说。

对学习编程者的忠告:
眼过千遍不如手过一遍!
书看千行不如手敲一行!
手敲千行不如单步一行!
单步源代码千行不如单步对应汇编一行!

关于自己是否适合编程的很简单的测试:
在报纸或杂志上随便找一段约1000字的文章,在Word中输入一遍。输完后再参考下面答案:

A里面有10处以上文字或标点错误
B里面没有文字或标点错误并敢为此跟人打赌
C里面没有文字或标点错误并且字体和排版完全与原稿一致
D打印在半透明的纸上和原稿重叠在一起检查一模一样,且自我感觉很有成就感

A不适合编程(理由:打字准确度偏低、粗心大意)
B初级程序员(理由:打字准确度很高、认真细致、自信、理解全角半角概念)
C高级程序员(理由:在B的基础上理解字体和排版也是电脑打印的重要因素、但相比D还不够偏执、精益求精、结果可验证)
D软件项目经理(理由:能针对项目给出令人信服的细致到极点的需求说明和典型测试用例。用户几乎挑不出毛病。专业!)

如果想从A变成B的话,到我的资源http://zhao4zhong1.download.csdn.net/里面下载“适合程序员的键盘练习”
AnYidan 2011-06-21
  • 打赏
  • 举报
回复
the c programming language
ace99999 2011-06-21
  • 打赏
  • 举报
回复
基础+模仿+思想
你也许有基础了,那就模仿吧,看那些牛人是如何NX的。
等你灵活运用了,就用你的思想设计自己的东西,然后实现它。你的深度取决于你的思想!
aozhi 2011-06-21
  • 打赏
  • 举报
回复
楼上各位都那么谦让,那我就得着啦?
1、指针变量不初始化带来的问题。
int *p;  /* p未被初始化,p中存放的地址是随机的,既然是随机的,在这地址中存放的数据就有可能是程序不能修改的 */
*p=4; /* 试图修改权限未知的空间中的内容(比如代码段、常量区等),程序很可能要报错,不报错是你运气好,随机到了有修改权限的内存而已。 */

2、指针变量初始化的问题
int *s="abcd";  /* 把常量"abcd"的地址给s */
int *s; /* s是一个随机地址 */
s="abcd"; /* s变成了常量"abcd"的地址,不会有问题。 */
*s='a'; /* 同1所述。 */

3、数组初始化的问题
char s[]="hello";  /* 开辟了一个长度是6的字符数组,把"hello"的内容拷贝到这个数组,而不是像指针变量初始化时,只把地址给了s。因为s是数组,又具备可写权限,所以试图修改它也不会有问题。 */
就想叫yoko 2011-06-21
  • 打赏
  • 举报
回复
其实人家答非所问 间接也是帮你顶帖了 让更多人看到你的问题
论坛是个在讨论中进步的地方
也许答非所问也刚好是你不清楚的东西呢 或者别人不清楚的东西呢
你觉得别人答非所问可以无视 并且不给分就好了 你也不损失什么
你不能指望论坛只有10个顶尖高手
专门负责解答问题且不出错
独酌逸醉 2011-06-21
  • 打赏
  • 举报
回复
我所知道的是csdn在走下坡路!
ww2000e 2011-06-21
  • 打赏
  • 举报
回复
先学汇编再学c也不错
SphinxFJQ 2011-06-21
  • 打赏
  • 举报
回复
啊?从大学开始,身边络绎不绝的人都推荐谭老的书,学校的教材是,课外班也是,所有人都在看啊。其实说白了,我只看过谭老的书....所以,,,看来不喜欢他的人也很多啊!牛人就是有争议的。误会了...包涵啊!
风吹PP凉SS 2011-06-21
  • 打赏
  • 举报
回复
找个公司去做吧,工作上才能学到东西
luciferisnotsatan 2011-06-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sphinxfjq 的回复:]

其实大家公认谭老的书写的好,但是我真的没觉得写的特别的好,到是很墨迹。比如就++i i++ i=i+1 i+=1就墨迹不止一次,有的时候还不知所谓,程序功能是一个,不用另一种思路让你去看程序,反倒在语法上帮你走迷宫,明白人都被弄糊涂了。其实我有这么一个问题,把谭老的书关于字符数组和字符串的内容看了不下10遍,但是还是很迷惑,很多百度“高手”也很说不清楚。问题是,定义字符数组的两种方式:
第一种……
[/Quote]

lz从哪看到 大家公认谭老的书写的好

C专家编程
C和指针
C陷阱与指针
C programming language
这些书是公认写的好的

SphinxFJQ 2011-06-21
  • 打赏
  • 举报
回复
2楼的,,,欺负新人啊?为啥要鄙视洒家?
無_1024 2011-06-21
  • 打赏
  • 举报
回复
只想说一句 做好被鄙视或者被打击的准备
SphinxFJQ 2011-06-21
  • 打赏
  • 举报
回复
其实大家公认谭老的书写的好,但是我真的没觉得写的特别的好,到是很墨迹。比如就++i i++ i=i+1 i+=1就墨迹不止一次,有的时候还不知所谓,程序功能是一个,不用另一种思路让你去看程序,反倒在语法上帮你走迷宫,明白人都被弄糊涂了。其实我有这么一个问题,把谭老的书关于字符数组和字符串的内容看了不下10遍,但是还是很迷惑,很多百度“高手”也很说不清楚。问题是,定义字符数组的两种方式:
第一种 :char a[1024];
第二种 :char *str;
我应该怎么去理解这第二种方式呢?很多时候用第一种的时候程序可以正常的运行,但是第二种就崩溃,找不到原因,我分析是内存的问题导致的,如果char *str,str是指针变量的话。如果是普通的指针变量,只定义,是没有内存空间的,比如 int *p;*p=4;一定报错。但是char *str="hello";就可以。char *str;str="hello";也可以。
回到上面的问题,很多时候char a[1000]在运行时候没错。如果写成char *a;就出错了。
如果改成char *str; char a[1024]; str=a;就ok了...请问这是为什么?还有有没有什么书,是专门讲堆和栈的?

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧