- 1、本文档共36页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C2C快速过渡到C
Chap2 C++的变量、类型及函数(从C快速过渡到C++)
2.1 数据类型(DataType)
1.基本数据类型
保留了C的所有基本DataType
2.复杂数据类型
C++采用 *、、[ ]、( )等运算符派生出如下复杂的DataType。其中,*、是单目运算符,放在标识符前面;[ ]、( )是双目运算符,放在标识符后面。
①数组格式:数组名[下标]例: char s[ ]=”abcd”; s[0]=’a’; int a[4]={1,2,3,4};
②指针格式:*指针名例: int *pi; float *pf; int (*pfun)(char *, int len); /*函数指针,表示pfun首先是一指
针,该指针指向具有2个形参的函数*/
③引用格式:引用名例: int i=5; int refi=i;
④class类型(包括struct和union类型)用户自定义的一种新的DataType,用来表示客观世界某类实体的抽象数据类型(Abstract Data Type-ADT)
⑤常量(只读变量)C++保留了C的常量定义风格,且对它的符号常量加以扩展。如#define tabsize 4 ( const int tabsize=4;
#define PI 3.1415926 ( const float PI=3.1415926
2.2 声明与定义
声明:对某个名及其内涵的不完整描述
定义:对该名及其内涵的完整描述
变量声明:不分配存储单元 或 不初始化的变量定义。如, extern int i; //声明 extern int i=0; //定义
函数声明:不定义函数体的函数原型描述。如, long sum(int a, int b); //声明 long sum(int a, int b) //定义 { return a+b; }
注意:①对于未初始化的全局变量、静态变量,C/C++缺省地初始化为0(定义)②对于局部变量,C/C++都不会缺省初始化(声明)
2.3 C++的常量与变量
2.3.1常量(只读变量)
常量:在程序运行期间其值不能被修改,在定义时必须初始化
C++对符号常量(宏定义标识符)加以扩展,对任何类型的对象(指针变量、引用变量、结构变量、数组、class类型的对象)都可以定义成常量。
定义格式:const 数据类型定义=初始值;
1.基本DataType,如
const int size=100; const float pi=3.1415;
int aryInt[size];
2.数组 常量数组中每个元素值在其作用域内不能被修改 const int data[ ]={1,2,3}; ( int const data[ ]={1,2,3}; data[1]=10; //出错
3.结构变量 其内的成员值在其作用域内都不能被修改 struct Complex{
double real;
double image;
};
const Complex X={1.0, 1.0}; X.real=2.0; //错误
X.image=3.0; //错误
4.指针 涉及到两个对象:指针本身和指针所指的目标变量
①将指针所指的目标变量定义成只读 —— 指向常量的指针
定义格式: const 类型 *指针名[=地址表达式];// [...]可选 类型 const *指针名;
例: const char *pc=”abcd”; // *pc为只读变量,不可变
pc[3]=’f’; // × *pc=’a’; // ×
pc=”sdef”; // √
指针所指存储单元的值是不可变,而指针的地址值是可以改变(即,可以重新给指针定向)。 即,*pc,*(pc+1),...,pc[0],pc[1],... 不可重新赋值 pc可重新赋值
②将指针本身定义成只读 —— 常量指针
定义格式: 类型 *const 指针名=地址表达式; //必须在定义同时初始化
例:
char * const pc=”abcd”; // pc不可变,*pc可变
pc[3]=’f’; //√
pc = “sdef”; // ×
指针所具有的地址值不可变,而指针
文档评论(0)