易截截图软件、单文件、免安装、纯绿色、仅160KB

C/C++ 易错

char c[] = "hello world"   分配局部数组
char* c = "hello world"   分配全局数组  全局区域的值是不能进行修改的
1 常量指针!如 int b, c; int * const a = &b;
表示a是一个常量指针它指向变量b的内存。但是因为是常量指针所以不能再用a指向其他变量,如 a = &c; 错误!可以修改指向内存的值,如:*a = 20; BTW 常量指针声明的时候必须向我那样赋初值。
2 指向常量的指针!如 int b, c; int const *a; a = &b; a = &c;
都可以,唯独它指向的内存不能被修改。如:*a=20;这是违法的!错误!
这就是主要区别!
BTW 还有一个记住他们不同形式的技巧!看const关键字,他后面的不可修改,如int * const a = &b; 后面是a,则说明a不能修改!
int const * a = &b;后面是*a则说明*a不可被修改!
在好多书上或MSDN是经常用 const int a=5;
int b=6;
const int *p=&b;
其实 const int* 和int const* 一样,就是常指针 也就是它所指向的数据(在这是int)是常量,它自己的数据类型是const int*
还有const int *p=&b;是可以的 虽然b不是常量。
但是  const int a=6;
      int *p=&a;
会报错,因为它消除了a的const属性
**********************************************
*******我们可以总结一下********
1.  对于常量(符号常量)和常指针、常引用常对象声明都是一样的
定义格式: const 数据类型  常量名=常量值;
或  数据类型 const 常量名=常量值;
例如:const int a=7; 或 int const a=7;(符号常量)
  int b=5; 
const int *p=&b;  或 int const *p=&b;(常指针)
const int &m=b;(常引用)
const Point pt; 或 Point const pt; //常对象不能更新
常指针和常引用在功能上有所限制,就是不能通过他们更改其指向的变量的数据(值)
2. 指针常量
定义格式: 数据类型 *const 指针常量=常量值;
如char ch,*const pch=&ch;(我是一步完成的,你也可以分开)
也就是说这个指针本身是个常量,不可改变,即它所指向的地址是固定的。但,ch是可以改变的。


相关文档:

我的学习笔记三:常见C++类型及相互转换

 C++里用到的数据类型有很多,编程过程中很容易混用,下面综合看到的资料(由衷感谢无私共享的前辈们)对此进行简单的解析
一、1.常见字符的意义:
   L:代表LONG
   W:代表WIDE,也就是OLE,代表宽字节字符
   P:代表POINTER
   A:代表ANSIC,也就是MBCS多字节字符
&nbs ......

C/C++语言中各种数据类型长度的总结

下面是我关于C语言中各种数据类型长度的总结:(参考The C Programming Language)
1. c语言中的整数类型有char, short, int, long等几种, 下面是C语言对每种数据类型长度的规定:
(a). short和long类型的长度不相同
(b). int类型通常同具体机器的物理字长相同
(c).&nb ......

VC++ ADO数据库 FlexGrid控件

耗费了一下午,研究了一下VC的数据库编程,写了这个测试程序。主要的功能为实现access数据库的添加与删除,同时动态的将数据库数据显示在flexgrid控件中。下面把过程记录下来,以备后用。
一。ADO简介
 ADO提供了一组非常简单,将一般通用的数据访问细节进行封装的对象。由于ODBC数据源也提供了一般的OLE DB Privide ......

基于杨辉三角的组合数计算算法(C++实现)

 
关于组合数计算的算法我写了好几个,发现杨辉三角查表法效率比较高!
并且这个算法利用C(n,k) = C(n,n-k)来简化杨辉三角的数组,算法的时间复杂度比较低。
原创,水平有限,如有不足,欢迎指出。
Mail:rainday163@163.com
下面是我写的代码并附带测试函数:Dev-C++ 4.9.9.2下测试通过。
/*----------------- ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号