摘要:
typedef和#define的用法与区别一、typedef的用法在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像:typedef int INT;typedef int ARRAY[10];typedef (int*) pINT;typedef可以增强程序的可读性,以及标识符的灵活性,但它也有“非直观性”等缺点。二、#define的用法#define为一宏定义语句,通常用它来定义常量(包括无参量与带参量),以及用来实现那些“表面似和善、背后一长串”的宏,它本身并不在编译过程中进行,而是在这之前(预处理过程)就已经 阅读全文
摘要:
一、 为什么需要命名空间(问题提出)命名空间是ANSIC++引入的可以由用户命名的作用域,用来处理程序中 常见的同名冲突。在 C语言中定义了3个层次的作用域,即文件(编译单元)、函数和复合语句。C++又引入了类作用域,类是出现在文件内的。在不同的作用域中可以定义相同名字的变量,互不于扰,系统能够区别它们。 1、全局变量的作用域是整个程序,在同一作用域中不应有两个或多个同名的实体(enuty),包括变量、函数和类等。例:如果在文件中定义了两个类,在这两个类中可以有同名的函数。在引用时,为了区别,应该加上类名作为限定:class A//声明A类{public:void funl();//声明A类中 阅读全文
摘要:
用变量a给出下面的定义:a)一个整形数(An integer)b)一个指向整形数的指针c)一个指向指针的指针,它指向的指针指向一个整形数d)一个有十个整形数的数组e)一个有十个指针的数组,该指针指向一个整形数f)一个指向有十个整形数数组的指针g)一个指向函数的指针,该函数有一个整形参数并返回一个整形数h)一个有十个指针的数组,该指针指向一个函数,该函数有一个整形参数并返回一个整形数答案:a)int a;b)int *a;c)int **a;d)int a[10];e)int *a[10];f)int (*a)[10];g)int (*a)(int);h)int (*a[10])(int); 阅读全文