注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

轻松度过每一天

真的猛士敢于直面惨淡的人生,敢于正视淋漓的鲜血,这是怎样的哀痛者和幸福者!!

 
 
 

日志

 
 
关于我

When you are young, you may want several love experiences. But as timegoes on, you will realize that if you really love someone, the wholelife will not be enough. You need time to know, to forgive and to love.All this needs a very big mind.

网易考拉推荐

一、变量,引用,宏  

2014-08-06 17:05:37|  分类: com.myCompany.Te |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

1.extern 变量的声明,只是声明。可以在别的文件定义

 

变量:全局变量(程序变量),全局静态变量(文件变量),局部静态变量

全局变量,定义在结构体外,整个程序均可用。且初值为0

 

全局静态变量(static int a),只能定义在.h的文件中,每当.m文件include时,每个.m文件均有独立的a,初值也为0

 

局部静态变量,系统进行内存管理,执行一次

   //static修饰的局部变量,只执行一次,之后被释放

int count(){

    static int a = 0;//局部静态变量

    a++;

    return a;

}

int main(int argc, const char * argv[])

{

   cout <<count()<<endl;

   cout <<count()<<endl;

   cout <<count()<<endl;

}

其输出结果为

1

2

3

因为static int a = 0;不会再次执行;

 

2.引用概念

void swap(int a, int b){

    int temp = a;

    a = b;

    b = temp;

}

这时一个交换函数。

int main(int argc, const char * argv[])

{

   int c = 3, d = 4;

   swap(c, d);

   cout <<”c = ”<<c <<”,d = ”<<endl <<d<<endl;

}

结构依旧是c = 3, d = 4;

如果把swap函数改为

void swap(int &a, int &b)

运用引用的概念, int &a = c, int &b =d;abc d的别名。在函数内进行操作的时候操作的直接是cd;故结果为c = 4, d = 3;

3.内存的概念

c++内存分4大块,栈(系统管理),堆(程序员管理 ),全局区,二进制代码区

现在:

###ClassA.h###########

#ifndef __myDemo05__ClassA__

#define __myDemo05__ClassA__

 

#include <iostream>

Class A

Public:

   void print();

#endif /* defined(__myDemo05__ClassA__) */

#####ClassA.cpp########

#include "ClassA.h"

using namespace std;

void A::print(){//A::域一定写上

    cout<<"今天是个好日子"<< endl;

}

A::~A(){//析构函数的重写,释放对象时自动调用

    cout << "aaaaaa"<<endl;

}

A::A(){

    cout<< "我是构造方法"<< endl;

}

#####main.cpp#########

#include <iostream>

#include "ClassA.h"

using namespace std;

int main(int argc, const char * argv[])

{

   A* e = new A;//(new A实列化对象,用指针引用)其是存在堆里面的

    e->print();//去引用。

    (*e).print();

    delete e;//new的对象保存在堆区中的,要程序员管理内存

   

   

    A d;//这种方法,存在栈里面的。由系统对内存分配

    //之后调用构造方法,默认A(){}

    d.print();

}

结果:

我是构造方法

今天是个好日子

今天是个好日子

aaaaaa

我是构造方法

今天是个好日子

aaaaaa

 

4.内联函数与宏定义

定义在.h文件中的(简单)函数,是真正的函数,系统会区检查语法等信息。给编译器建议,当函数过于复杂,编译器会做普通函数调用。

 

宏定义,简单的说就是:简单的替换。如

#include <iostream>

#include "ClassA.h"

using namespace std;

//宏定义

#define PXD(x) x+x

int main(int argc, const char * argv[])

{

int a = PXD(2);

    cout << a <<endl;

    int b = PXD(3)*PXD(2);//3+3*2+2只是简单的带入过程

    cout << b <<endl;

结果:

4

11

 

5.命名规范

Class A

   int a_iCount;//变量a是整型,是用来计数的

   //类型 作用域_类型_功能;

自我解析:

    int a = 1, b = 2;

    int* c = &a;//指针c指向变量a

    int &d = b;//d是变量b的别名

    cout <<c<<endl<<&c<<endl<<&*c<<endl*c<<endl;//c输出c的值,&c输出c的地址,*c输出指针c所指对象a的值,&*c输出指针c所指对象a的地址

    cout <<d<<endl<<&d<<endl<<b<<endl<<&b<<endl;

  评论这张
 
阅读(19)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017