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

长期收集 C/C++ FAQ

写在前面:
  论坛里总有那么一些问题是长盛不衰的,今天这个问,明天那个问,到历史帖子里一搜可以抓出来一大把。有时候这都令我怀疑是不是我们的教育体制存在问题……
  于是我开了这篇文章,搜集我见到的长生不老之帖,希望可以起到参考价值。
  这里使用的编译环境为 gcc/g++ 4.3.3 for ubuntu 9.04
数组名和指针的问题
  这绝对是教材问题!现在国内有太多教材灌输“数组名相当于指针”的概念了!于是纷纷有人把数组名和指针等同起来,认为数组名其实就是一个指针。久而久之,许多新手已经不知道还有一种数据类型叫做“数组”了。
  对于这个问题首先应该从概念上澄清,坚定不移地把数组和指针这两种类型划清界线,认识到它们虽然有千丝万缕的联系,但其实是两种不同的数据类型。就如下面所看到的:
#include <iostream>
#include <typeinfo>
using namespace std;
#define gettype(id) (cout<<typeid(id).name()<<endl)
int a;
char arrChar[10];
char str1[] = "string";
char str2[] = "string?";
char *p1 = str1;
char *p2 = str2;
int main()
{
gettype(a);
gettype(arrChar);
gettype(str1);
gettype(str2);
gettype(p1);
gettype(p2);
return 0;
}

输出为:
A10_c
A7_c
A8_c
Pc
Pc
  可见,arrChar、str1、str2 的类型分别为 char [10]、char [7]、char [8],即使它们都是数组,由于大小不同,也被看作是三种不同的类型;而 p1、p2 的类型则相同,为 char*。
  那么,传说的“数组名相当于指针”又是怎么一回事呢?且看 C99 标准中有关叙述:
6.2.5 Types
......
    Array types are characterized by their element type and by the number of elements in the array.
......


相关文档:

oracle中pro*c的学习


oracle中pro*c的学习
 一 Pro*C 程序概述:
1.什么是Pro*C程序
在ORACLE数据库管理和系统中, 有三种访问数据库的方法;
(1) 用SQL*Plus, 它有SQL命令以交互的应用程序访问数据库;
(2) 用第四代语言应用开发工具开发的应用程序访问数据库,这些工具有SQL*froms,QL*Reportwriter,SQL*Menu等;
(3) 利用在 ......

C/C++头文件一览


C/C++
头文件一览

//////////////////////////////////////////////////////////////////////////
C
头文件
(C89,C95)
(C++98,C++03也包含)
include <assert.h>    //诊断库
include <ctype.h>     //字符处理函数库
include <errno.h>     //错误定义
include <float.h& ......

c 语言陷阱

原著:Andrew Koenig - AT&T Bell Laboratories Murray Hill, New Jersey 07094
翻译:lover_P
0 简介
    C语言及其典型实现被设计为能被专家们容易地使用。这门语言简洁并附有表达力。但有一些限制可以保护那些浮躁的人。一个浮躁的人可以从这些条款中获得一些帮助。
   &nbs ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号