zoukankan      html  css  js  c++  java
  • C++之再续前缘(一)——C++基础(与C语言的差异)(上)

    1.注释:

      1.注释的嵌套:/* 和*/不能嵌套,但是/*//something*/是可以的

      2.反斜杠换号代码毫无影响

    2.操作符dec(十进制),hex十六进制,oct八进制

      int x=25;

      eg:cout<<hex<<x<<" "<<dec<<x<<" "<<oct<<x;

      输出结果分别为19,25,31(分别用十六进制,十进制,八进制表示25)

    3.变量声明

       C语言中:int x;

            x=25;

            int y;

            y=23;

       是不行的,赋值夹在两个声明之间是不行的

      但是C++可以

    4.结构体,联合,枚举名变量的定义

      例如struct Node{

    ....

    };

    C语言中是这样的:struct Node x;

    C++中不需要struct :Node y;

    5.函数声明:

      若函数声明中没有指出返回类型的函数,C++默认为int

     未完待续,明天继续奋斗

       今天继续

    6.常量

      1.#define的不安全性:#define几乎就是直接将代码插入对应的引用段,显得很粗鲁,而且容易出错

      2.const:加到一个对象的声明上,将这个对象声明为一个常量,而常量是不允许赋值的,因此在声明时必须初始化

      const int x=3;

      const int v[]={1,2,3,4};

      但是 const int y 很明显是错的 ,他没有初始化,另外,x此时已经为常量了

      此时:const实际上改变了类型,x已经不再是整形变量了,他已经是一个常量了

      

      另外 ,就是指针与const之间一段纠结的感情史了,不过不要怕,慢慢梳理一下

      首先,一个指针涉及到两个对象,该指针本身和被它所指的对象,

    那么接下来,常量到底是指针本身还是它所指的对象呢

    1.常量是它本身 ,也就是常量指针

      定义常量指针的声明运算符为  *const

      char s[]=“abcd”;

      也就是说要定义一个指向s的常量指针

        char *const pc=s;

        常量指针:即该指针为常量!!!

          (赋值操作不被允许const int x=3)因此不能更改指针的指向:如:pc="cdef";

          但是可以更改 pc[3]='f';

    2.常量是它所指向的对象,也就是指向常量的指针

       const char* pd=s;

        这种情况下,指针pd本身并不是一个常量,但是字符数组s是一个常量

        在这种情况下pd="cdef"是可以的

        但是,pd[2]='e'是不可行的

    3.常量既是指针本身,也是它所指向的对象

      const char*pd=s;

      在这种情况下,以上两种情况都不允许,恩,这大概就是const了

    亲爱的听众朋友我是你的代班DJ
  • 相关阅读:
    高阶函数
    Vue-cli 3.0 搭建,以及vuex、axios、使用
    Git --- 基本操作以及Git 特殊命令,公司常用命令
    Git 剖析,以及Git相关操作
    git ssh key 生成
    React.Fragment 组件没有必要的多层嵌套,外层不需要过多嵌套
    spring cloud连载第三篇之Spring Cloud Netflix
    spring cloud连载第二篇之Spring Cloud Config
    AbstractQueuedSynchronizer
    Timer定时器
  • 原文地址:https://www.cnblogs.com/YTYMblog/p/5380517.html
Copyright © 2011-2022 走看看