回 帖 发 新 帖 刷新版面

主题:[讨论]关于学习C++中的疑惑

各位大侠们:
    小弟刚学C++,有几点感到十分的迷惑
    (1) 关于2重指针的问题(例如:int **) 到底什么是2重指针,他有什么作用,他与平常的指针有什么区别?
    (2) 关于名字域的问题(例如:namespace std) 这个到底有什么用,感觉平时做程序时没他程序也运行的十分正常。
    (3) 关于内联函数的问题(例如:inline) 他有什么作用?
希望各位大侠能够为小弟我解惑,各位和我一样的菜鸟们也希望能够参与讨论共同进步.

回复列表 (共1个回复)

沙发

1.*********************************************************************************

int** ppArray = NULL;
int* pArray[10] = {NULL};
ppArray  = pArray;

简单地说: int** 表示指向一个指针(这里是一个指针数组)的指针,其结构如下:

                   | ---------------------> |(值)
      ppArray ---> | ---------------------> |(值)
                   | ---------------------> |(值)
               (指针数组)

ppArray 指向的是一个数组,数组的每一个成员是一个指针,每一个成员指向的是一个堆/栈上的整型数据。其他的类型或者结构也是这样,**指针是学习Com/ActiveX编程的基础,也是学习DX开发的必须要掌握的基础。

一般的int*指针指向的是一个堆、栈上整型数据的指针。

2.************************************************************************************
  你自己动手试一下就明白了,很简单:

  你建一个test.h文件,然后声明命名空间,然后在命令里面声明一些变量,外面也声明一些变量,然后你在一个测试程序里包含这个头文件,尝试去使用命名空间中和外的变量,然后你就什么都明白了。

3.************************************************************************************

  内联函数关键字inline 是在预编译阶段为了优化程序而将函数直接放到目标程序中,这样可以提高应用程序的性能,实际上通常我们都不许要考虑使用它,因为从VS2003以后编译器会自动对某些函数体进行内联优化处理。VC6下,对于简单的函数或者短小的函数(如类里面的构造、析构函数),可以使用inline 关键字前缀。

----------------------------------------------------------------------------------------
myblog: http://www.cppblog.com/rawdata
remember: try and try yourself if you doubt it.




我来回复

您尚未登录,请登录后再回复。点此登录或注册