高质量函数C++,C语言设计--指针

来源:互联网 发布:学编程有什么好书 编辑:程序博客网 时间:2024/05/19 18:43

摘抄自 高质量C,C++编程指南

  • 如果参数是指针,且仅作输入用,则应在类型前加 const,以防止该 指针在函数体内被意外修改。
> 例如: void StringCopy(const char *strSource,char *strDestination);
  • 如果输入参数以值传递的方式传递对象,则宜改用“ const &”方式来 传递,这样可以省去临时对象的构造和析构过程,从而提高效率。
  • 避免函数有太多的参数,参数个数尽量控制在 5 个以内。如果参数太 多,在使用时容易将参数类型或顺序搞错。
  • 尽量不要使用类型和数目不确定的参数。 C 标准库函数 printf 是采用不确定参数的典型代表,其原型为:
int printf(const chat *format[, argument]…);

返回值的规则

不要省略返回值的类型。如果函数没有返回值,那么
应声明为 void 类型。

引用与指针的比较

1,程序中,n是 m的一个引用(reference),m是被引用物(referent)。
int m;
int &n = m;
所以 n既不是 m的拷贝,也不是指向 m的指针,其实 n就是 m它自己。
2,引用的一些规则如下:
(1)引用被创建的同时必须被初始化(指针则可以在任何时候被初始化)。
(2)不能有 NULL引用,引用必须与合法的存储单元关联(指针则可以是 NULL)。
(3)一旦引用被初始化,就不能改变引用的关系(指针则可以随时改变所指的对象)。

应用

1、指针变量初始化
方法1:uint8 a;
uint8 *p
p = &a;
方法2:uint8 a;
uint8 *p = &a;

2、二维数组的地址
如a[2][3] = { {1, 2, 3}, {4, 5, 6}};
首地址 a或者&a[0]或者 &a[0][0];
a[1]代表的是什么呢?a[1]表示a[1][0]的地址,即&a[[1][0]。代表行的地址,可以看做是一个数组名字。

0 0
原创粉丝点击