在线报名 | 加入收藏 | 学校地图

电话:400-0379-707 QQ:710034203

首页 > 学习园地 > 技术教程 > 正文阅读

洛阳北大青鸟:C语言的声明以及初始化辨析

发布时间:2013-03-20 15:58:47 点击:0
洛阳北大青鸟导读:在进行c++培训时,发现有些概念对于初次接触c++的同事可能有点难于理解,所以这里洛阳北大青鸟的专业课程老师做些总结,一方面方便同事阅读,另一方面也是对自己技能的一个总结。一、声明(declaration):用于向程...

 

在进行c++培训时,发现有些概念对于初次接触c++的同事可能有点难于理解,所以这里洛阳北大青鸟的专业课程老师做些总结,一方面方便同事阅读,另一方面也是对自己技能的一个总结。

一、声明(declaration):用于向程序表明变量的类型和名字,是用来将一个object、function、class或template的类型和名字告诉编译器。由2部分组成:类型+ 标示符,标示符可以包含字符*、[ ]和(),表明这个名称是类型的指针、数组或者返回类型的函数。

声明并不带有细节信息;

定义也是一种声明;

extern关键字可用来声明变量而不定义,只是说明变量定义在程序的其他地方;变量可以声明多次,但只能定义一次

例子:

char *pc; // 类型是pc,标示符是*pc,表明*pc是一个char.

extern float x; // 对象声明

int func(double num); //函数声明

class Person; //类声明

template

class SmartPointer; //模板声明

解读复杂声明的一种方法,遵循"声明模仿使用"的原则逐步分解声明。

例如:char * (*pfpc)();

* (*pfpc)(); // 是一个char

(*pfpc)(); // 是一个指向char的指针

(*pfpc); // 是一个返回char类型指针的函数

pfpc; // 是一个指向返回char类型指针的函数的指针

二、定义(definition):是用来将细节信息提供给编译器。

对于object而言,定义是编译器为它分配内存空间;

对于function或funciton template而言,定义是提供函数体;

对于class或class template而言,定义是列出该class或template的所有成员;

例子:

float x; //对象定义

//函数定义

int func(double num) {

int t = static_cast(num);

return t;

}

//类定义

class Person {

public:

Person();

~Person();

String getName() const;

void setName(String name);

};

//模板定义

template

class SmartPointer {

public:

SmartPointer(T *p = 0);

~SmartPointer();

T * operator->() const;

T& operator*() const;

};

备注:如果声明中有初始化,那么它其实是定义。

例如:externdouble pi = 0;

此时pi是定义,所以如果这样用的话会出错:

extern double pi = 0;

extern double pi = 1; // 2个extern且初始化

热词搜索: 洛阳 北大青鸟 C语言
分享该网页到:   转播到腾讯微博  分享到QQ空间
  • ①理论课
  • ②上机课
  • ③职业导向训练(COT)
  • ④指导学习课(DLC)
  • ⑤项目案例课
  • ⑥在线培训课(OLTL)
  • ⑦阶段项目课
  • ⑧毕业设计课
人才招聘 | 视频专区 | 专题活动 | 认证查询 | 网站地图