美文网首页
C++ 之初体验

C++ 之初体验

作者: Tate_code | 来源:发表于2017-01-19 14:37 被阅读70次

前言

C++与Objective-C都是在1980+年代诞生,所以语法糖上面都有很多相似地方,学起来并不难。至于我用的IDE,我直接用的是Xcode,很方便。

国际惯例,打印hello world

cout << "hello world" << endl;

这里介绍几个关键词:

cout 输出
cin 输入
endl 换行打印

cout 语法形式:

cout << x << endl;
cout << "x + y =" << x+y << endl;

cin 语法形式:

cin >> x;
cin >> x >> y;

这样的输入、输出方式有哪些便利?
1、不用关注占位符
2、不用关注数据类型
3、不易出现问题

C++命名空间(namespace)

在C++中,名称(name)可以是符号常量、变量、宏、函数、结构、枚举、类和对象等等。为了避免,在大规模程序的设计中,以及在程序员使用各种各样的C++库时,这些标识符的命名发生冲突,标准C++引入了关键字namespace(命名空间/名字空间/名称空间/名域),可以更好地控制标识符的作用域。

举个例子:同个年级有相同名字的同学,那样为了避免认错人,我们可以把他们分到不同班级里,这样就区分开来了。这里的班级就可以称为命名空间。

关于命名空间描述几点

1、使用namespace定义命名空间。
2、通过命名空间可以区分具有相同名字的变量。
3、通过命名空间可以区分具有相同名字的函数。

代码示例:

#include <iostream>
#include <stdlib.h>
using namespace std;
   namespace     myNum            //填写命名空间的关键字
{
    int x = 105;
}
int main()
{
    // 使用bool类型定义isOdd,作为状态位
        bool    isFlag = false;       
    
    if(myNum::x % 2 == 0)
    {
        //改变状态位的值,使其为false
        isFlag = false;
    }
    else
    {
        //改变状态位的值,使其为true
        isFlag = true;
    }
    // 判断状态位的值
    if(isFlag)
    {
        // 如果状态位的值为true,则打印变量x是奇数
        cout << x是奇数 ;
    }
    else
    {
        // 如果状态位的值为false,则打印变量x是偶数
        cout << x是偶数 ;
    }
    return 0;
}

C++ 引用

代码示例:

#include <iostream>
using namespace std;
int main(void)
{
    int x = 3;
    //定义引用,y是x的引用
    int &y = x;
    //打印x和y的值
    cout << x << endl;
    cout << y <<endl;
    //修改y的值
    y = 100;
    //再次打印x和y的值
    cout << x << endl;
    cout << y <<endl;  
    return 0;
}

C++ const关键字

代码示例:

//const
#include <iostream>
using namespace std;
int main(void)
{
    //定义常量count
    const int count = 3;
    const int *p =  &count;
    //打印count次字符串Hello C++
    for(int i = 0; i < count; i++)
    {
        cout << "Hello C++" << endl;
    } 
    return 0;
}

C++函数新亮点

函数参数默认值
void fun( int i,int j=5,int k=10 );//有默认参数值的参数必须在参数表的最右端
函数重载

在相同作用域内
用同一个函数名定义的多个函数
参数个数和参数类型不同

内联函数

编译时将函数体代码和实参代替函数调用语句
内联函数关键字:inline

关于C++函数形参默认值的说法

1、当函数有多个形参时,可以都有默认值。
2、当函数有多个形参时,可以都没有默认值。
3、当函数有多个形参且都有默认值时,实参个数可以少于形参个数。

代码示例:

#include <iostream>
using namespace std;
/**
  *函数功能:返回a和b的最大值
  *a和b是两个整数
  */
int getMax(int a, int b)
{
    return a > b ? a : b;
}

/**
  * 函数功能:返回数组中的最大值
  * arr:整型数组
  * count:数组长度
  * 该函数是对上面函数的重载
  */
int getMax(int *arr,int count)
{
    //定义一个变量并获取数组的第一个元素
    int maxNum = arr[0];
    for(int i = 1; i < count; i++)
    {
        //比较变量与下一个元素的大小
        if(maxNum < arr[i])
        {
            //如果数组中的元素比maxNum大,则获取数组中的值
            maxNum = arr[i];
        }   
    }
    return maxNum;
}

int main(void)
{
    //定义int数组并初始化
    int numArr[3] = {3, 8, 6};
    
    //自动调用int getMax(int a, int b)
    cout << getMax(numArr, 3) << endl;
    
    //自动调用返回数组中最大值的函数返回数组中的最大值
    cout << getMax(numArr[0], numArr[2]) << endl;
    return 0;
}

C++内存管理

什么是内存管理?

内存的本质是资源

操作系统掌管内存资源
对于我们开发者,我们能手动申请与归还
申请/归还内存资源就是内存管理

如图:

A0BA3DAE-7E27-412F-AB75-6E31EF74FE7B.png 1A160E69-BD72-4B65-983B-AE17F12E7A9B.png 4164E4A2-EBE1-44A4-9EA9-441213D7889E.png C8FEF922-5C3C-4AF6-9CD6-67F01BED98A5.png

内容总结
使用new申请内存,使用delete释放内存
申请内存需要判断是否成功,释放内存需要设空指针
new与delete配套使用

代码示例:

#include <string.h>
#include <iostream>
using namespace std;
int main(void)
{
    //在堆中申请100个char类型的内存
    char *str = new char[100];
    //拷贝Hello C++字符串到分配的堆中的内存中
    strcpy(str, "Hello imooc");
    //打印字符串
    cout << str << endl;
    //释放内存
    delete []str;
    str = NULL;
    return 0;
}

参考资料

http://www.imooc.com/learn/342
http://www.imooc.com/learn/381

相关文章

  • C++ 之初体验

    前言 C++与Objective-C都是在1980+年代诞生,所以语法糖上面都有很多相似地方,学起来并不难。至于我...

  • 小本秋招历程

    春招之初体验 秋招之路

  • 病之初体验

    (文/李远红) 作为一名医生,远远地看着病人生病十几年了,虽说很体恤病人,但是要做到感同身受还是很不易的,...

  • JavaScript之初体验

    函数结构 function函数名() { 函数具体条件内容 } 定义词 var 定义一个变量 if else 条件...

  • 爱之初体验

    双十一的热潮才刚刚褪去,令人惊讶的是身边许多朋友都脱单了。原来,现在大家都不会想起那个曾经让单身汪胆怯的日子--...

  • 爱之初体验

    朋友May恋爱了,对于我们这群90后的老阿姨来说是正常不过的了。但对于她,甚至对于我,都是激动人心的大事,毕竟这是...

  • JAVA之初体验

    小垃圾啊我很棒棒

  • 「醒来」之初体验

    端午节,跟朋友去体验了【醒来】死亡体验馆。 在没去之前,我是抱着期待也不害怕的。但是进到了那个场域里,也许是基于对...

  • PHP之初体验

    最近,由于工作中的一些原因,需要接触一些PHP的代码,自己就简单看了下,小结一下一些基本知识(大神绕路..) PH...

  • 爱之初体验

    当秋叶开始落下的时候,我开始想你了! 当秋风轻柔拂面的时候,我开始想你了! 当秋雨细碎的漫洒在脸颊的时候,我开始想...

网友评论

      本文标题:C++ 之初体验

      本文链接:https://www.haomeiwen.com/subject/eflbbttx.html