摘要:
题记:C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。一.面向过程中的static1.静态全局变量——在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。静态全局变量有以下特点:该变量在全局数据区分配内存;未经初始化的静态全局变量会被程序自动初始化为0(自动变量的值是随机的,除非它被显式初始化);静态全局变量在声明它的整个文件都是可见的,而在文件之外是不可见的;静态全局变量不能被其它文件所用其它文件中可以定义相同名字的变量,不会发生冲突;注:对于一 阅读全文
随笔分类 - C++基础
define与typedef的区别
2013-09-24 16:39 by Keiven_LY, 297 阅读, 收藏,
摘要:
例:#define PI 3.14typedef int* int_p;从上面的两条语句可以看出:1、#define是预处理命令,在编译预处理时进行单纯的替换工作,不做正确性检查,而typedef是在编译时处理的,可理解为“为某个类型寻找另一种书写方式” 即typedef int* int_p;该语句为int*引入了一个新的助记符int_p,可以在程序中用int_p声明指向int型的指针变量 如typedef int* int_p; int_p pA,pB;上述两条语句声明了两个指向int型的指针变量pA和pB2、#define不是语句,后面不加分号,而typedef需加分号3、typedef 阅读全文
C++ 野指针
2013-09-24 16:17 by Keiven_LY, 820 阅读, 收藏,
摘要:
看下面一段代码:if(条件){ int *p=new int[8];}p是代码块中声明的局部指针变量,在代码块执行完退出时,p自动消亡,但p指向的大小为8,类型为整形的内存空间并不会被释放掉。代码块退出后,程序无法再通过指针p释放所申请的动态内存,这块内存已经“泄漏”!防止内存泄漏的方法:适时释放申请的动态内存 malloc()与free()配对使用,new与delete配对使用再看 int *p=new int[8]; ......... delete[] p;执行完delete[] p后,指针p也不会消亡,其值也不会变,并不会变为null,因此,指针被free或delete后,一定要置为n 阅读全文
C++中类的使用
2013-09-15 15:59 by Keiven_LY, 702 阅读, 收藏,
摘要:
1、类定义的基本形式class 类名{ private: 私有的数据成员定义 私有成员函数 public: 公共成员函数};如:class computer{ private: //私有成员列表 char brand[20]; float price; public: //公有成员列表(访问接口) void print(); void SetBrand(char *sz); void SetPrice(float pr);}... 阅读全文
C++ 中的指针与引用
2013-09-13 14:15 by Keiven_LY, 363 阅读, 收藏,
摘要:
引言: 从概念上讲: 指针从本质上讲就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变。 引用是一个别名,它在逻辑上不是独立的,它的存在具有依附性,所以引用必须在一开始就被初始化,而且其引用的对象 阅读全文
C++中的函数定义、声明、调用
2013-09-12 16:19 by Keiven_LY, 18754 阅读, 收藏,
摘要:
1、函数的本质:函数由能完成特定功能的独立程序代码块组成,如有必要,也可调用其他函数(函数的嵌套)函数内部工作对程序的其它部分是不可见的2、 实现一个函数要经过3个步骤:定义、声明、调用函数声明(又称函数原型)的原因:用来通知编译器函数的存在,以获得函数的使用许可,只有这样,才能在程序中对函数进行调用。具体来说,函数声明的作用如下:使编译器正确处理返回值使编译器可以检查输入参数的数目使编译器检查输入参数的类型,如果类型不正确,则对类型进行隐式转换函数调用的作用如下:用实参向形参传递数据为获得数据的参数和函数中为声明的变量分配临时存储空间中断当前正在运行的上级调用函数,将程序流程转到被调用函数的 阅读全文
字符数组中的cin与cout
2013-09-11 21:02 by Keiven_LY, 2211 阅读, 收藏,
摘要:
1 #include 2 #include 3 4 using namespace std; 5 6 int main() 7 { 8 char str[]="Welcome to C++ world !"; //创建一个字符数组,并初始化 9 cout>str;12 cout这样的写法的,因为要包含进来的头文件名就是iostream.h。标准C++引入了名字空间的概念,并把iostream等标准库中的东东封装到了std名字空间中,同时为了不与原来的头文件混淆,规定标准C++使用一套新的头文件,这套头文件的文件名后不加.h扩展名,如iostream、string... 阅读全文
指针
2013-04-07 19:09 by Keiven_LY, 216 阅读, 收藏,
摘要:
摘要:程序中定义的某个变量,在编译时系统就会给这个变量分配内存单元,并根据程序中定义的变量类型分配一定长度的内存空间,每个内存单元中存放着变量的值。为了便于内存单元的存取,系统为每个内存单元分配了一个地址,则程序中定义指向“地址”的变量即为指针变量,简称为:指针。指针是一类特殊的变量,它保存的不是数据值,而是程序中定义的某个变量(整型,实型变量)在内存中的地址。指针的定义:int *p1;float *p2;char *p3;void *p4(这里定义一个空指针,可以指向任何对象,也称为通用指针)指针的初始化:(1)指针对象可以被一个具有相同类型的对象初始化,如:int i=10;int *p 阅读全文
结构体使用
2013-04-07 13:26 by Keiven_LY, 194 阅读, 收藏,
摘要:
/* 结构体类型与结构体变量的声明格式 *//* struct [结构体名] { 成员类型 成员1 成员类型 成员2 成员类型 成员3 。。。 成员类型 成员n }[结构体变量名]*/#include <iostream>using namespace std;struct Student{ int no; char name[16]; char sex; float score;};void main(){ int i,n=0; float sum=0,average... 阅读全文
跳转语句——break、continue、goto
2013-03-28 10:35 by Keiven_LY, 283 阅读, 收藏,
摘要:
1、break语句 说明:该语句将使程序从当前的循环语句(do……while,while,for)内跳转出来,继续执行循环语句后面的语句 例:从键盘读入用户输入的数,对其求和,直到当用户输入数0时,表示输入结束 2、continue语句 说明:该语句不是结束循环,而是结 阅读全文
循环控制语句的学习(以输出反序数为例)
2013-03-28 10:00 by Keiven_LY, 537 阅读, 收藏,
摘要:
目的:用户输入一个整数,将其反序显示出来思想:将输入的整数不断求余,依次输出即可1、while语句#include <iostream>#include<stdlib.h>using namespace std; void main(){ int num,num_new; cout<<"请输入一个整数:"<<endl; cin>>num; cout<<"反向显示结果为:"; while(num!=0) { num_new=num%10; num=num/10; cout<< 阅读全文
常见输入/输出流操纵符
2013-03-27 22:10 by Keiven_LY, 421 阅读, 收藏,
摘要:
dec——格式化为十进制数值hex——格式化为十六进制数值oct——格式化为八进制数值setw(int width)——设置输出数据字段宽度为widthsetprecision(int num)——设置浮点数精度位数setfill(int ch)——设置ch为填充字符endl——输出一个换行符并刷新流ends——输出一个空字符‘\0’以结束字符串如:#include <iostream>#include <iomanip> ////setw和setprecision函数需要,使用标准库即可#include <stdlib.h>using namespace 阅读全文
求两个整数之间的大者
2013-03-27 21:58 by Keiven_LY, 245 阅读, 收藏,
摘要:
#include <iostream>#include <stdlib.h>using namespace std; int max(int a, int b);void main(){ int x ,y; cout<<"请输入要比较的两个变量x和y"<<endl; cin>>x>>y; cout<<"x,y两者之间的最大值为:"<<max(x,y)<<endl; system("pause"); //不加这句,会出现显示框一闪 阅读全文
对C++的atoi(),substr(),c_str(),itoa()函数的理解
2013-03-26 21:12 by Keiven_LY, 1366 阅读, 收藏,
摘要:
①atoi()函数原型为:intatoi(char*str),用途是将字符串转换成一个整数值,str是待转化成整数值的字符串.成功则返回转化后的整数值,失败返回0.备注:该函数的头文件是"stdlib.h"②substr()函数原型为:basicstring::substr(string,start,length),也可把string移到外面,为string&a,a.substr(start,length),其中a是待截取的字符串,start表示从截取开始的前一位,length表示截取长度,例如string③&a="helloworld" 阅读全文
C++中与字符串有关的函数
2013-03-26 21:11 by Keiven_LY, 638 阅读, 收藏,
摘要:
C++的字符串标准函数的原型在头文件string.h中,常用的几个函数如下:strcpy() 函数:用于拷贝字符串strcat()函数:用于连接字符串strlen()函数:用于计算字符串的实际长度strcmp()函数:字符串大小比较length()函数:返回字符串长度max_size()函数:返回字符串的最大长度clear()函数:用于清空字符串operator[]函数:用于得到字符串中的字符at函数:用于得到字符串中的字符swap:用于与另一字符串交换内容c_str():取得const char* 字符串find:用于查找字符fing_first_of():用于查找某个字符第一次出现的位置f 阅读全文
用dev c++运行的程序结果一闪而过,看不到,怎么解决?
2013-03-26 21:10 by Keiven_LY, 854 阅读, 收藏,
摘要:
解决方法:最后加上一句 system("pause");要加上头文件: #include<stdlib.h> 阅读全文