博文

c语言学习之路--天使无痕 (2006-09-22 16:02:00)

摘要: c语言学习之路--天使无痕

我学C语言已经近两个月,《C语言程序设计》这本书我现在正在看第三遍,虽然上次考C等级时二级没过,但我相信以我现在水平是肯定可以通过考试,并且我已经第二次报了名。
学到现在我却仍然不知道该怎么去编程,当我想写一个游戏的时候才发现自己什么也不懂,我应该再看看什么书好呢?学之致用。
我询问了许多高手他们告诉我-----初学者都有这种困惑的。

选择了IT,就意味着艰辛,困苦与挑战!要学的东西还很多很多......不要想一步登天,不要想走捷径!(除非你只是玩玩,或者你有TALENT!)基础最重要!IT任重而道远,朋友,原你有一颗坚定的心,走下去,不会错!!!
在你学习的同时,还要注意一下IT的行情,多了解了解,摆好自己的位子,正确对待每一件事!我相信你一定会成功的!!!
真正的程序员用C,最有价值的程序员是用C的程序员。不是开玩笑!

C语言只是一个基础。一个能够向表达你的想法的基础,会了C能够写程序,但是不见得能够写出有实际意义的软件。(建议学习架构)
当你学到不自觉地使用这门语言时(大约写3万行代码就差不多了),你的c语言才可以说学会了。不是有个笑话吗?说的就是程序员的痴迷程度。我想应该有这样的精神才行。建议暂时不要看高级编程,多写代码、多看代码、培养风格、熟悉语法、最关键的是把握思想。
学C语言并不只是学语法那么简单,重要的是编程思想,难的是它在不同环境下的应用。这是一个漫长的过程,需要经验的积累。当燃,并不是说死死抓住C不放,但如果你目前还不知该怎样编程,建议在你有一种游刃有余的感觉之前,还是不要去碰什么C++,Java之类,那样你遇到的困难会更大。自己独立写完一个程序(无论大小)并看到他的正常运行时便会有一种成就感。不断培养这种成就感,循序渐进,进步是自然的事情。
首先
C语言是一个漫长的过程,它是基础,在很长很长......的时期内不会被淘汰。把C语言学好了,其他的,FOR EXAMPLE:C++,C#,JAVA,VC,VC++,VB,DELPHI......这些学起来就会比那些C语言基础不扎实的人要轻松得多!
了解一下库函数。连库函数都不了解怎么去编程?我也是刚听人家说要看库函数的。
初级阶段建议 <......

阅读全文(3702) | 评论:5

C语言笔记(2006-09-03 15:26:00)

摘要:   第一章 概述   1. C语言的特点   ①语言简洁、紧凑,使用方便、灵活。共有32个关键字,9种控制语句。 ②运算符丰富,公有34种运算符。 ③数据结构丰富,数据类型有:整型、实型、字符型、数组、指针、结构体、共用体等。 ④具有结构化的控制语句(如if…else、while、do…while、switch、for) ⑤语法限制不太严格,程序设计自由度大。 ⑥允许直接访问物理地址,能进行位(bit)操作,可以直接对硬件操作。 ⑦生成目标代码质量高,程序执行效率高。 ⑧可移植性好。     2. C语言的用途   C虽不擅长科学计算和管理领域,但对操作系统和系统实用程序以及对硬件进行操作方面,C有明显的优势。现在很多大型应用软件也用C编写。   Top of Page      第二章 数据类型、运算符与表达式   1. C的数据类型   C的数据类型包括:整型、字符型、实型或浮点型(单精度和双精度)、枚举类型、数组类型、结构体类型、共用体类型、指针类型和空类型。   2. 常量与变量   常量其值不可改变,符号常量名通常用大写。变量其值可以改变,变量名只能由字母、数字和下划线组成,且第一个字符必须为字母或下划线。否则为不合法的变量名。变量在编译时为其分配相应存储单元。   3. 整型数据   整型常量的表示方法:十进制不用说了,八进制以0开头,如0123,十六进制以0x开头,如0x1e。 整型变量分为:基本型(int)、短整型(short int)、长整型(long int)和无符号型。不同机器上各类数据所占内存字节数不同,一般int型为2个字节,long型为4个字节。   4. 实型数据  实型常量表示形式:十进制形式由数字和小数点组成(必须有小数点),如:0.12、.123、123
0.0等。指数形式如123e3代表123×10的三次方。 实型变量分为单精度(float)和双精......

阅读全文(2052) | 评论:0

1000本C/C++电子书专题下载教(2006-09-03 10:53:00)

摘要:  所有内容推荐Flash Get下载(要求加精)
资料内容所涉及方面:
C/C++/VC++的基础教程、通讯、协议分析、游戏开发、图像处理、管理系统、多媒体、加密与解密、控件ACTIVEX、开发CGI、标准程式库、技术内幕、Windows核心编程、对象模型、人工智能、软件工程、数据结构、WindowsAPI、Visual Basic 、Directx、网络开发、数据库开发、ADO、神经网络、DLL和内存管理、OLE&DDE、操作系统、端口、数值算法、等等技术或相关开发资料。
《C语言专区》
C语言实例教程 1.72
http://download.chinaitlab.com/soft/8658.htm

经典编程900例(C语言)
http://download.chinaitlab.com/soft/7972.htm

C语言实例教程
http://download.chinaitlab.com/soft/6530.htm

C语言图象处理方法
http://download.chinaitlab.com/soft/6514.htm

C语言编程实例
http://download.chinaitlab.com/soft/6103.htm

C语言书打包下载
http://download.chinaitlab.com/soft/6041.htm

集成学习环境(C语言)
http://download.chinaitlab.com/soft/5764.htm

C语言圣经 1.0
http://download.chinaitlab.com/soft/5745.htm

用C实现面向对象
http://download.chinaitlab.com/soft/7566.htm

C语言高级实用编程技巧
http://download.chinaitlab.com/soft/4593.htm

C语言最新编程技巧200例
http://download.chinaitlab.com/soft/4594.htm

阅读全文(1695) | 评论:0

《彻底搞定C指针》第1篇---变量的内存实质(2006-08-31 09:49:00)

摘要:《彻底搞定C指针》第一篇 变量的内存实质 白云小飞 一.先来理解C语言中变量的实质
    要理解C指针,我认为一定要理解C中“变量”的存储实质,所以我就从“变量”这个东西开始讲起吧!
    先来理解理解内存空间吧!请看下图: 内存地址→  6      7       8      9       10      11      12      13
-----------------------------------------------------------------
··· |       |       |       |       |       |       |       |··
-----------------------------------------------------------------     如图所示,内存只不过是一个存放数据的空间,就好像我的看电影时的电影院中的座位一样。每个座位都要编号,我们的内存要存放各种各样的数据,当然我们要知道我们的这些数据存放在什么位置吧!所以内存也要象座位一样进行编号了,这就是我们所说的内存编址。座位可以是按一个座位一个号码的从一号开始编号,内存则......

阅读全文(1763) | 评论:0

《彻底搞定C指针》第2篇----指针是什么(2006-08-31 09:48:00)

摘要: 《彻底搞定C指针》第2篇----指针是什么 白云小飞 二.指针是什么东西
指针,想说弄懂你不容易啊!我们许多初学指针的人都要这样的感慨。我常常在思索它,为什么呢?其实生活中处处都有指针。我们也处处在使用它。有了它我们的生活才更加方便了。没有指针,那生活才不方便。不信?你看下面的例子。
这是一个生活中的例子:比如说你要我借给你一本书,我到了你宿舍,但是你人不在宿舍,于是我把书放在你的2层3号的书架上,并写了一张纸条放在你的桌上。纸条上写着:你要的书在第2层3号的书架上。当你回来时,看到这张纸条。你就知道了我借与你的书放在哪了。你想想看,这张纸条的作用,纸条本身不是书,它上面也没有放着书。那么你又如何知道书的位置呢?因为纸条上写着书的位置嘛!其实这张纸条就是一个指针了。它上面的内容不是书本身,而是书的地址,你通过纸条这个指针找到了我借给你的本书。
那么我们C,C++中的指针又是什么呢?请继续跟我来吧,看下面看一个申明一整型指针变量的语句如下:
int * pi;
pi是一个指针,当然我们知道啦,但是这样说,你就以为pi一定是个多么特别的东西了。其实,它也只过是一个变量而已。与上一篇中说的变量并没有实质的区别。不信你看下面图。
内存地址→6     7       8      9     10     11      12     13     14
--------------------------------------------------------------
···|    30      |  ‘t’ |      |      |  &......

阅读全文(2005) | 评论:0

《彻底搞定C指针》第3篇--指针与数组名(2006-08-31 09:47:00)

摘要: 《彻底搞定C指针》第3篇--指针与数组名 白云小飞 1. 通过数组名访问数组元素
看下面代码
int i,a[]={3,4,5,6,7,3,7,4,4,6};
for (i=0;i<=9;i++)
{
   printf ( “%d”, a[i] );
}
很显然,它是显示a 数组的各元素值。
我们还可以这样访问元素,如下
int i,a[]={3,4,5,6,7,3,7,4,4,6};
for (i=0;i<=9;i++)
{
   printf ( “%d”,  *(a+i) );
}
它的结果和作用完全一样

2. 通过指针访问数组元素
int i,*pa,a[]={3,4,5,6,7,3,7,4,4,6};
pa =a  ;//请注意数组名a直接赋值给指针pa
for (i=0;i<=9;i++)
{
   printf ( “%d”, pa[i] );
}
很显然,它也是显示a 数组的各元素值。
另外与数组名一样也可如下:
int i,*pa,a[]={3,4,5,6,7,3,7,4,4,6};
pa =a;
for (i=0;i<=9;i++)
{
   printf ( “%d”, *(pa+i) );
}
看pa=a即数组名赋值给指针,以及通过数组名、指针对元素的访问形式看,它们并没有什么区别,从这里可以看出数组名其实也就是指针。难道它们没有任何区别?有,请继续。

3. 数组名与指针变量的区别
请看下面的代码:
int i,*pa,a[]={3,4,5,6,7,3,7,4,4,6};
pa =a;
for (i=0;i<=9;i++)
{
   printf ( “%d”, *pa );
    pa++ ;  //注意这里,指针......

阅读全文(1698) | 评论:0

《彻底搞定C指针》第4篇const int * pi/int * const p(2006-08-31 09:47:00)

摘要: 《彻底搞定C指针》第4篇const int * pi/int * const pi的区别(已改) 白云小飞
(本贴已经做了重大修改)

1 从const int i 说起
    你知道我们申明一个变量时象这样int i ;这个i是可能在它处重新变赋值的。如下:
int i=0;
//…
i=20;//这里重新赋值了
    不过有一天我的程序可能需要这样一个变量(暂且称它变量),在申明时就赋一个初始值。之后我的程序在其它任何处都不会再去重新对它赋值。那我又应该怎么办呢?用const 。
//**************
const int ic =20;
//…
ic=40;//这样是不可以的,编译时是无法通过,因为我们不能对const 修饰的ic重新赋值的。
//这样我们的程序就会更早更容易发现问题了。
//**************
    有了const修饰的ic 我们不称它为变量,而称符号常量,代表着20这个数。这就是const 的作用。ic是不能在它处重新赋新值了。
    认识了const 作用之后,另外,我们还要知道格式的写法。有两种:const int ic=20;与int const ic=20;。它们是完全相同的。这一点我们是要清楚。总之,你务必要记住const 与int哪个写前都不影响语义。有了这个概念后,我们来看这两个家伙:const int * pi与int const * pi ,按你的逻辑看,它们的语义有不同吗?呵呵,你只要记住一点,int 与const 哪个放前哪个放后都是一样的,就好比const int ic;与int const ic;一样。也就是说,它们是相同的。
    好了,我们现在已经搞定一个“双包胎”的问题。那么int * const pi与前两个式子又有什么不同呢?我下面就来具体分析它们的格式与语义吧!

2 const int * pi的语义
    ......

阅读全文(1378) | 评论:0

《彻底搞定C指针》-——第5篇:函数参数的传递(上)(2006-08-31 09:46:00)

摘要: 彻底搞定C指针-——第五篇:函数参数的传递 白云小飞  
一. 三道考题
开讲之前,我先请你做三道题目。(嘿嘿,得先把你的头脑搞昏才行……唉呀,谁扔我鸡蛋?)

1. 考题一:程序代码如下:
void Exchg1(int x, int y)  
{
  int tmp;
  tmp=x;
  x=y;
  y=tmp;
  printf(“x=%d,y=%d\n”,x,y)
}
void main()
{
  int a=4,b=6;
  Exchg1 (a,b) ;
  printf(“a=%d,b=%d\n”,a,b)
}
输出的结果:
x=____, y=____
a=____, b=____
问下划线的部分应是什么,请完成。

2. 考题二:代码如下。
Exchg2(int *px, int *py)
{
  int tmp=*px;
  *px=*py;
   *py=tmp;
  print(“*px=%d,*py=%d\n”,*px,*py);
}
main()
{
  int a=4;
  int b=6;
      Exchg2(&a,&b);
      Print(“a=%d,b=%d\n”, a, b);
}
输出的结果为:
*px=____, *py=____
a=____, b=____
问下划线的部分应是什么,请完成。

3. 考题三:
Exchg2(int &x, int &y)

阅读全文(1916) | 评论:0

《彻底搞定C指针》-——第5篇:函数参数的传递(下)(2006-08-31 09:45:00)

摘要:彻底搞定C指针》-——第5篇:函数参数的传递(下) 白云小飞 三. 函数参数传递方式之二:地址传递
继续——地址传递的问题!
看题二的代码:
Exchg2(int *px, int *py)
{
  int tmp=*px;
  *px=*py;
  *py=tmp;
  print(“*px=%d,*py=%d\n”,*px,*py);
}
main()
{
  int a=4;
  int b=6;
      Exchg2(&a,&b);
      Print(“a=%d,b=%d\n”, a, b);
}
它的输出结果是:
  *px=6,*py=4
  a=6,b=4

    看函数的接口部分:Exchg2(int *px,int *py),请注意:参数px,py都是指针。
    再看调用处:Exchg2(&a, &b);
    它将a的地址(&a)代入到px,b的地址(&b)代入到py。同上面的值传递一样,函数调用时作了两个隐含的操作:将&a,&b的值赋值给了px,py。
px=&a;
py=&b;
    呵呵!我们发现,其实它与值传递并没有什么不同,只不过这里是将a,b的地址值传递给了px,py,而不是传递的a,b的内容,而(请好好地在比较比较啦)
    整个Exchg2函数调用是如下执行的:
  px=&a;   //
  py=&a......

阅读全文(2091) | 评论:0

《彻底搞定C指针》第6篇 指向另一指针的指针(2006-08-31 09:45:00)

摘要:六篇 指向另一指针的指针 白云小飞
一. 回顾指针概念:
早在本系列第二篇中我就对指针的实质进行了阐述。今天我们又要学习一个叫做指向另一指针地址的指针。让我们先回顾一下指针的概念吧!
当我们程序如下申明变量:
short int i;
char a;
short int * pi;
程序会在内存某地址空间上为各变量开辟空间,如下图所示。
内存地址→6     7      8     9     10     11    12    13     14    15
-------------------------------------------------------------------------------------
…  |     |      |      |      |      |       |      |      |      |   
--------------------------------------------------------------......

阅读全文(1323) | 评论:0