C++-Day1

C++学习第一天

1、代码调试时一闪而过:因为程序没有输入,只有固定的输出。在遇到 return 时自动退出。

三种解决方法:
  1. 采用输入方法不让程序终止。
cin.clear; //清空缓存
cin.sync; //清空缓存
cin.get; //接收键盘输入
  1. 与1一样,采用输入方法不让程序终止。使用不同的输入方法:
getchar();
return 0;

使用getchar函数获得一个char类型,但是不赋予任何一个变量。

  1. 使用暂停方式
system("pause");//按任意键继续...

2、基本语法

  1. 什么叫做c++代码:
    可以看做是对象的集合。对象间的调用实现了很多功能。
    对象:具有状态和动作
    类:描述对象的状态、动作的模板
    方法:描述动作的,一个类可以有多个方法,即多个动作
    即时变量:表示一个对象
  2. 三字符组
    用于表示 以前键盘上没有的字符,用三个字符来表示。
    如 ??/ 翻译为 \
  3. 标识符
    其实就是定义的变量,要以大小写字母、下划线开头,后可接大小写字母、下划线、数字
  4. 关于命名空间
using namespace std

避免定义了同一个变量名,比如我自己也定义了一个vector,为了区分,限制了变量名。使用了std::表示使用c++的标准库,少用了上述语句,不需要再重复加前缀std::

3、数据类型

  1. 需要变量来存储信息,变量中一般保存的是存储的值的内存位置。当创建一个变量时,就会在内存中留出一部分的位置。
  2. 字节(Byte)
    一个字节 = 8个 bite,bite是计算机内存的最小单位,存储的是一个二进制数 即0 或 1。
  3. 变量类型:
    布尔型 : bool ;字符型:char ;整型:int;浮点型:float; 双浮点型:double float;
    无类型:void ; 宽字符型:wchar_d;
    一个基本类型可以由 有无符号:signed;unsigned;长短:long,short;来修饰
    (注:对于 float 类型是没有有无符号之分的)
  4. 每个类型需要占用的内存以及表示的范围
  5. 对于c++来说,具体每个类型占用的内存大小是和操作系统相关的,但是也有一定的规则,如long>short,具体的可以用 sizeof(int) 来查询占用的内存大小。
  6. 枚举变量
    可以定义枚举变量:
enum rank {first,second, third} nrank;//定义了一个枚举变量nrank,取值只能为1,2,3,并且默认情况下first,second, third 的值为 0,1,2
enum rank {first,second  = 2, third} nrank;//此时first = 0,third = 3,后面的比前一个大1.
  1. 疑问:a = 2, 是指变量的值为2还是地址为2。???????

4、变量类型

  1. 变量定义是告诉编译器在内存的哪个位置创建变量的存储,以及如何创建变量的存储。
  2. 对于未初始化的变量:
    静态存储持续时间的变量 被初始化为Null,即每个字节的值都是0;
    其他变量:未定义
    ps:静态存储持续时间的变量:
    1. 静态持续性、外部链接性
    全局变量:在某个文件中定义的变量,在另一个文件中需要引用,引用前要先声明
    如文件1中有变量 int a = 12,在文件2中使用的话,声明 extern int a; 再使用。
    2. 静态持续性,内部连接性
    加上static的全部变量:仅在当前文件中可以访问,若在代码块中有重命名,会隐藏掉全局变量;又想使用全局变量,需要使用作用域 ::a。
    只能作用于当前文件,如果两个不同文件定义了同一个变量,这两个变量也是不同的。
    3. 静态持续性,无连接性
    加上static的局部变量,代码块运行结束后,该变量的内存空间仍然存在,值也存在。再次运行该代码块时,值会叠加。

5、作用域

全局变量、静态全局变量、静态局部变量

  1. 从内存分配来看,全局变量、静态变量都在静态存储区分配空间,在程序运行的过程中一直存在;而局部变量在栈里分配空间,只有在函数执行期间存在,当函数一次调用结束后,变量被撤销,内存也被收回。
  2. 当局部变量未初始化时,系统不会给初始化;当全局变量未初始化时,会被默认初始化为0。

6、常量

  1. 常量:整型、浮点型、字符、字符串、布尔值
  2. 两种方法定义常量:const、#define
    (把常量定义为大写字母形式,是一个很好的编程实践。)
#define A = 10;
const int A = 10;

注意:
const 定义常量后,不能再赋值

const A; //也是错误的,需要初始化
A = 10;//是错误的

const A = 10;//正确

extern const A;//正确,使用extern的外部变量;

宏定义#define、const 的区别:

  1. #define 在编译时起作用,const在编译运行时起作用;
  2. #define 不分配内存,const 分配内存,在数据段存储;
  3. 类型和安全检查:#define 没有定义类型,产生边际效应等错误;const 定义了类型;
  4. 定义域不同:#define 没有限制定义域,const 有定义域的限制。
  5. const 可以做函数的参数,#define 不行;
  6. #define 定义后可以取消,#undef; 取消后可以重新定义。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值