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了

posted @ 2016-04-11 22:31  LT.C#  阅读(146)  评论(0编辑  收藏  举报