Chinaunix首页 | 论坛 | 博客
  • 博客访问: 76034
  • 博文数量: 19
  • 博客积分: 372
  • 博客等级: 二等列兵
  • 技术积分: 200
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-20 14:01
文章分类

全部博文(19)

文章存档

2010年(19)

分类:

2010-05-08 11:13:09

1、为宏定义中的表达式使用括号;常用的带参数宏定义:

#define MAX(a,b)       ((a) > (b)) ? (a) : (b)

#define MIN(a,b) ((a) < (b)) ? (a) : (b)

#define ABS(x)            ((x) > 0) ? (x) : (-(x))  

12、在C语言中并不支持字符串数据类型,但是,它允许使用字符数组来表示字符串。字符串变量就是一个字符数组:char string_name[size];注意:当编译器把字符串赋值给字符数组时,会自动地在字符串的末尾添加空字符(‘\0),因此必须等于字符串中的最大字符数再加上1。用strlen(str)计算字符串长度的时候,不把空字符加上去的。

char city[8] = “BEIJING”

char city[8] = {‘B’,’E’,’I’,’J’,’I’,’N’,’G’,’\0’};

还有一个值得注意的地方那就是:不能把初始化从声明中分隔开来,也就是说char str[5];

str = “good”;这个是不行的,同时

char s[4] = “abc”;

char a[4];

a = b;这也是不行的,因为数组名不能用作赋值运算符的左操作数。

13C语言函数库中有一个函数,可以将数字字符串转换成相应的整数值:x = atoi(string);

number = “2009”;

year = atoi(number);使用库函数是一个不错和聪明的选择;须包括#include

14、不允许二个字符串直接比较,也就是说:if (name1 == name2)这是行不通的。

15、注意breakcontinue的区别;

16、实参与形参的类型应用相同或赋值兼容;实参对形参变量的数据传递是“值传递”即单向传递,调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被,实能单元仍保留,并维持原值,函数类型决定返回值的类型。

17、数组名作为实参和形参传递的是数组首地址,形参数组各元素的值如发生变化会使实参数组元素的值同时发生变化,因为两个都指向向内存的同一地址。

18、需了解全局变量与局部变量的区别;

19、用static声明局部变量,局部变量的值在函数调用结束后不消失而保留原值,即占用存储单元不释放,在下一次调用该函数时,该元素已有值,就是上次函数调用结束时的值;注意:虽然静态局部变量在函数调用结束仍然存在,但其他函数是不能引用它的。

static来声明全局外部变量时,是希望某些外部变量只限于被本文件引用,而不能被其他文件用。注意:声明与定义的不同之处。同样,在函数前加static如:static int fun(int a,int b);它只能被本文件引用。

20、多多了解#include #define #ifdef等的用法;

其实还有好多的东西写,不过现在自己写起来感觉,和一些书本上写得也没有多大的区别,所以在这里没有想继续写下去了,毕竟这只能一些基本的知识,真正的知识是自己在实践中去总结的,相信朋友们多知道这个。

有关指针的用法,网上一些文档讲得很详细,相信大多数朋友都看过,我再这里把它放在下一篇日志里面,同时当我们了解了基本的语法后,最重要的就是实践了,实践很重要,记得大学的时候,自己考个国家二级,里面老是有一些+++i这类的东西,那时候搞得很烦,不过说实话,也这加深了我们对其的了解,不过到底还是觉得这对于学习C语言编程没有什么大的帮助,不要过重的去在意语法问题,这样的问题一般在我们编程中加一个括号就可以一清二楚了,对于编程风格和技巧,强烈建议朋友去看林锐博士的那个高质量的C/C++程序编程指南,网络上电子版本有的下,同时如果自己有米的话,去买本也无所谓了,买书的投资是非常值得的。

欢迎大家一起讨论。

阅读(2939) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

安何2010-05-16 19:56:49