c++ day1

c++ 每个可执行程序有且仅有一个main函数,即程序入口。

返回值:return 0;

注释://      /*    */

目录

设置文档

基础的输入输出

标识符

数据类型

数字型

逻辑运算符

字符型与字符串

复合型

  变量

   常量


 

设置文档

  • 每个类的声明写在一个头文件中,.h为后缀

         #ifndef CLASSNAME 

        #def CLASSNAME 

              类的声明

       #endif

  • 类的实现在对应的.cpp文件中

#include "classname"         //添加类声明

  • 将函数的声明与常数的声明写在一个文件,函数的具体实现放在对应的.cpp文件
  • 文件中使用函数和类时,只需引用声明的头文件即可\

基础的输入输出

输出:cout<<"请输入:";     //将  "请输入:"  输出给<<左边对象

std::cout<<"请输入两个数字"<<std::endl;
//等价于
std::cout<<"请输入两个数字";
std::cout<<std::endl;

 

输入:cin>>x;  //将接受的输入放到>>右边对象即x中

int a,b;
std::cin>>a>>b;

输出两数之和

std::cout<<"两个数字之和"<<a<<"and"<<b
         <<"is"<<a+b<<std::endl;

cerr:标准错误,输出警告和错误信息

clog:产生程序执行的信息

标识符

为变量,函数,类等起的名称。

字母或下划线开头,区分大小写

函数,类:大写开头           变量:小写开头           常量:全大写         全局变量:g_  (global)

注意c++的保留字

数据类型

  • 数字型

         int(4)     char(1)       float(4)       double(8)       // 1 byte = 8 bit

  • 逻辑运算符

       &&       ||           !(单目)

  • 字符型与字符串

       普通字符 char(1)        

       转义字符 “\”开头  \': 单引号    \":双引号    \\: 斜杠     \a:响铃   \b:后退   \n: 换行    \r:回车   \t: 制表   \v:垂直制表   \xnnn: 16进制       

       字符串使用字符数组完成处理。字符数组长度固定。

       字符数组处理串时,长度+1:结束符\0

       static char city[9] = ("c","h","a","n","g","s","h","a","n","g","h","a","i","\0")

char *tmp1;
string tmp2;
tmp2 = tmp2.insert(0,tmp1);     //字符数组转为字符串
strcpy(tmp1,tmp2.c_str(),tmp2.length());  //字符串转为数组

       

  • 指针

      指针是“地址”----常量,指针变量是取值为地址的变量。

   <type>  *<var1>     int *ip;

      * :表示访问指针所指向的内存单元的内容                             & :取出变量的内容,即地址 

 *p = const;    //const赋给p所指向的单元
 *p = var;      //var的值赋给p所指向的单元
 var = *p;      //p所指向的单元的内容赋给var

 

   指针地址初始化    char *aa = mm   //使用已有指针地址mm

   变量地址初始化     char bb;       char *aa = &bb  //将bb的地址付给aa

   分配内存单元 new     指针  = new <type>;         delete 指针;//释放指针的内存单元    

   动态分配内存malloc()        <type>  *p = (type *)malloc(sizeof(type)*n);           free p;//释放

   判断指针大小   sizeof()           void *p; 无类型指针,不分配内存。       空指针p=NULL (/ 0);

   引用  type &ref = var;//ref是var的别名,没有开辟新空间,使用方式同指针

  • 数组     

     type name[x];//x:数字个数,0-----x-1

     高级数组  int Array[5][10];    //一个包含5个元素的数组,每个元素包含10个数字

     数组名指向该连续单元的首地址,所以数组名是指向该数组的第一个元素的指针

     int *ptr = Array;   //ptr指向数组Array的首地址,指向数组的指针     

    指针数组:一个数组,元素类型为指针;  int *p[4];

  • 枚举

      枚举 :enum  <类型名>  {<类型表>}

enum color{red,yellow,blue};
color c1,c2;
c1 = red;
  • 结构体

     

struct name{                          struct employee{    
    type var1;                           short id;
    type var2;                           std::string name;
};                                    };

name one;                              employee e1;  e1={40,"Charles"};
                                       e1.id = 40; 
                                       e1.name = "Charles";

   创建一个指向结构的指针   employee *em = &e1; //em的类型是employee,赋值为e1的地址,em->id = 41;

   

  • 联合

union pet{       
    std::string name;      
    short id;       
}; //只保存变量的一个值

     

  • 自定义的类型

  1.        typedef  int COUNT: //使用基本数据类型定义新的有意义名称
  2.        简化结构体定义   
  3.        简洁定义固定的数组
struct name{                          typedef struct name{                          
    type var1;                            type var1; 
    type var2;                            type var2;
};                                    };
 
struct name one;                      name one; 

             

 

  变量

   向编译器声明自己的存在,并且为自身分配所需空间。
 

   type var1 [ =value 1 ]   
   extern  type var1 [ =value 1 ] //仅仅声明变量,不分配存储空间
作用域变量位置
局部局部函数内声明
全局全局函数外声明    ::(限定符),访问同名全局变量
文件全局static  ::(限定符)

   常量

   书写规则:#define _MAX 或是 const 

   单引号:字符(如'/125'表示字符U)         双引号:字符串   面向过程:

      详细写出具体过程。如:五子棋游戏。

      开始  -->  黑子 -->  图画  -->  输赢  -->  白子 -->  图画   -->  输赢  -->  返回黑子  --> 最后

  面向对象:

      将属性与方法封装成类,实例化对象,对象调用类中方法实现需要的操作。如:五子棋游戏。

      1)黑白双方玩家:行为一致;

      2)系统画面绘制;

      3)规则系统:输赢,犯规。

       三个对象:玩家(接收输入)--> 告诉画面对象显示新输入 --> 规则进行判断,重复。

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值