// HelloWorld.cpp : Defines the entry point for the console application.
// #include "stdafx.h"
#include "string.h"
#include "iostream.h" /**
* 在C、C++语言中
* 声名语句中: 声明指针变量用*,声明变量或者常量都不加*。
* 譬如函数声明中的参数,返回值类型等。例如类中的字段的声明。
* 在赋值语句中: * 表示取值。 &表示取变量的地址,也就是取指针。
*
* class,struct,unit: 也遵循上述原则。另外,
* 在使用指针进行变量的访问、方法的调用时,要使用 ->
* 在使用实例进行变量的方式、方法的调用时,要使用.
* 例如personTest()方法中:
* p是指针,*p就是p所指向的实例。
*
* personTest()测试中的内存模型:
* 指针p Value *p ,也可以称为实例
* ___________ __________ ___________
* | | | name |-------> |Fang JiNuo | *name
* | | —————> | age : 23 | |___________|
* |___________| | address | ______________________
* |__________|-------> | Bei Jing, Haid Dian | *address
* |_____________________|
*/
class Person
{
private:
char* name;
int age;
char* address;
public :
char* toString()
{
char* ret=name;
return ret;
}
void setAge(int age){
this->age=age;
}
void setAddress(char* address){
this->address=address;
}
void setName(char* name){
this->name=name;
}
}; void personTest(){
Person * p=new Person();
p->setAddress("Bei Jing, Hai Dian"); // 采用指针的方式赋值
(*p).setName("Fang JiNuo"); // 采用对象的方式赋值
(*p).setAge();
printf("show info:\n%s\n", (*p).toString());
} void switchTest(){
int a=;
int b=;
int c=;
char oper='+';
switch(oper){
case '+':
c=a+b;
case '-':
c=a-b;
break;
case '*':
c=a*b;
break;
}
printf("c = %d %c %d = %d", a, oper, b, c);
} /**
* C 语言的输入输出
*/
void input_Output_test_c(){
printf("Hello World!\n");
printf("zhang san, wo cao \n");
int a,b;
printf("input tow int number, pattern is d, d:\n");
scanf("%d, %d", &a, &b);
printf("a is %d\n",a);
printf("b is %d\n",b);
printf("a+b=%d\n",a+b);
}

/**
 * C++ 的输入输出
 * 使用前需要include iostream.h
 */
 void input_Output_test_cpp()

{

     // << out1 << out2 << out3 << out4 << endl;
     // endl 代表endline,也就是换行
     char * content=new char;
     cout << "plese input:" << endl;
     cin>> content;
     cout << content << endl;
  }


/**
 * namespace
 * C 语言不支持。
 * C++ 支持。
 *
 */
  namespace MyNS
  {
    void namespaceTest(){
      cout << "MyNS namespace invoked" << endl;
    }
  }


  void namespaceTest(){
    cout << "current namespace invoked" << endl;
  }

int main(int argc, char* args[])
{

// input_Output_test_c();
// personTest();
// switchTest();
// input_Output_test_cpp();
namespaceTest();
MyNS::namespaceTest();

    return ;
}

C、C++: 引用、指针、实例、内存模型、namespace的更多相关文章

  1. 栈 堆 stack heap 堆内存 栈内存 内存分配中的堆和栈 掌握堆内存的权柄就是返回的指针 栈是面向线程的而堆是面向进程的。 new/delete and malloc/ free 指针与内存模型

    小结: 1.栈内存 为什么快? Due to this nature, the process of storing and retrieving data from the stack is ver ...

  2. C++二级指针第二种内存模型(二维数组)

    C++二级指针第二种内存模型(二维数组) 二维数组 二维数组本质上是以数组作为数组元素的数组,即“数组的数组”. 定义 类型说明符 数组名[常量表达式][常量表达式] 例如: float a[3][4 ...

  3. C语言 二级指针内存模型混合实战

    //二级指针内存模型混合实战 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #i ...

  4. C语言 二级指针内存模型③

    //二级指针内存模型③ #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #incl ...

  5. C语言 二级指针内存模型②

    //二级指针第二种内存模型 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #incl ...

  6. C语言 二级指针内存模型①

    //二级指针第一种内存模型 #include<stdio.h> #include<stdlib.h> //说明:①:类似于int a[5]={0},数组名a是一维数组a中首元素 ...

  7. C++对象内存模型2 (虚函数,虚指针,虚函数表)

    从例子入手,考察如下带有虚函数的类的对象内存模型: class A { public: virtual void vfunc1(); virtual void vfunc2(); void func1 ...

  8. c语言二级指针内存模型

    第一种: 指针数组作为输入参数 char *myArray[] = {"aaaaaa", "ccccc", "bbbbbb", " ...

  9. C++二级指针第一种内存模型(指针数组)

    二级指针第一种内存模型(指针数组) 指针的输入特性:在主调函数里面分配内存,在被调用函数里面使用指针的输出特性:在被调用函数里面分配内存,主要是把运算结果甩出来 指针数组 在C语言和C++语言中,数组 ...

随机推荐

  1. Kooboo CMS 之TextContent详解

    TextCotent 在Kooboo.CMS.Content下面,在View中有使用到这个模型层. TextContent继承了ContentBase,而ContentBase是由2个部分类组成的,一 ...

  2. Java进击C#——语法之基础

    本章简言 上一章讲到关于项目工程开发常用的知识点,有了前面俩章的介绍之后.本章正式开始介绍关于C#的基础语法.我们都很清楚C#也是面向对象的计算机语言.而且他跟JAVA的相似度高达80%.所以很多语法 ...

  3. CSS魔法堂:重拾Border之——更广阔的遐想

    前言  当CSS3推出border-radius属性时我们是那么欣喜若狂啊,一想到终于不用再添加额外元素来模拟圆角了,但发现border-radius还分水平半径和垂直半径,然后又发现border-t ...

  4. 加入一个线程:join

    在启动一个线程之后调用该线程的join()方法,会使该线程先执行,该线程执行完成后,再执行调用该线程的线程. 例如如下的任务: public class LiftOff extends Thread ...

  5. TeamCity : 安装 Agent

    笔者在前文中介绍了 TeamCity Server 的安装过程,本文介绍在 Ubuntu Server 14.04 中安装 TeamCity Agent.Ubuntu Server 上已经创建了用户 ...

  6. 【C#】分享带等待窗体的任务执行器一枚

    -------------201504161039更新------------- 更新内容: IWaitForm接口删除System.Windows.Forms.DialogResult Dialog ...

  7. 好的Ui界面地址

    http://121.40.148.178:8080/http://www.uimaker.com/http://www.uimaker.com/uimakerhtml/bshtml/124261.h ...

  8. jquery移除属性值

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. Oracle账户解锁/锁定

    1. 首先用系统账号登录: sqlplus /nolog conn /as sysdba 2. 输入命令对账户解锁/锁定: ALTER USER scott ACCOUNT UNLOCK ALTER ...

  10. PHP规范PSR2

    为了尽可能的提升阅读其他人代码时的效率,下面例举了一系列的通用规则,特别是有关于PHP代码风格的.各个成员项目间的共性组成了这组代码规范.当开发者们在多个项目中合作时,本指南将会成为所有这些项目中共用 ...