C++基础

变量/结构体类型

  • 自带变量类型

  • int:绝对值在 1 0 9 10^9 109范围内可以使用int类型
  • long long:绝对值在 1 0 18 10^{18} 1018内可以使用long long类型,对long long赋大于 2 31 − 1 2^{31}-1 2311的初值需要在初值后加LL
  • float,double:float有效精度在7位,double有效精度在15位;在print中float和double都是使用%f输出
  • 小写字母的ASCII比大写字母的大32
  • 字符串常量可以作为初值赋给字符数组,但不能非初值用字符串常量赋值
  • 结构体类型

  • 结构体内可以定义自身类型的指针变量(如结点的定义),但不能定义自身(循环定义)
  • 构造函数建议使用前面带下划线的变量名,如"_id",以区分自身变量和传入变量
  • 定义了人为构造函数后默认构造函数消失,不能不经过初始化定义变量(需要自己定义默认构造函数)
  • 结构体内可以定义变量类型和函数,与class的区别是结构体内东西都是public的,不能继承等

输入与输出

  • scanf,printf:scanf的%c格式可以读入空格和换行,scanf参数是地址,printf参数是值
  • 输出格式:%md使int变量以m位右对齐,%0md使int变量以补零右对齐,%.mf使浮点数保留m位小数输出
  • getchar和putchar:可接收/输出任何字符
  • gets和puts:可输入/输出一行字符串,gets以\n作为输入结束,puts以\0作为输出结束
  • sscanf(str,"%d",&n)和sprintf(str,"%d",n)可将字符数组转化为数字和将数字转化为字符数组

数组

  • 在全局定义的数组,不人为初始化也会初始化为0
  • Z维数组赋初值,对前面的元素赋值后,后面的元素默认赋值为0
  • 申请的数组较大(大概 1 0 6 10^6 106)时,需要在主函数外部定义
  • 字符数组在最后面有\0表明字符串结束。单独读入字符放到字符数组时,注意要在末尾加\0

函数参数传递

  • 数组传参:fun(int a[][5])实际上是地址传参
  • 指针传参:指针传参实际还是传值,因此不能通过交换指针交换两个数(可以通过指针的引用int* &p实现)
  • 引用:引用是给原变量起了个别名(因此函数参数名和变量名可以不同),对引用的操作就是对原变量的操作;常量不可用使用引用,例如不可用写swap(&a,&b),必须先用指针变量存放再传入函数参数。

指针

  • 指针是一个unsigned类型的整数
  • 定义多个指针采用int *p1,*p2,p3的方式而不是int p1,p2
  • 必须要先使指针指向某个某个元素的地址,才能访问指针对应的元素,否则会访问/修改野区引起错误

其他

  • typedef:给复杂的数据类型起一个别名
  • 宏定义函数每个变量都需要加括号,因为宏定义是直接对应部分的替换

头文件

  • math.h

  • 基本操作类:fabs(double x),floor(double x),ceil(double x),round(double x)
  • 基本函数类:pow(double r,double p),sqrt(double x),log(double x),sin(double x),asin(double x)
  • string.h

  • memset(数组名,值,sizeof(数组名)):连续区域按字节赋值。可对int数组赋值0或者-1,对double数组赋值0
  • fill:
  • 字符数组基本函数:strlen(字符数组),strcmp(字符数组)(使用与0比较,而不能使用==判断),strcpy(字符数组),strcat(字符数组)
  • stdlib.h和time.h

  • 随机数:先srand((unsigned)time(NULL));初始化种子,再使用rand()获得[0,RAND_MAX]范围内的随机数。
  • 使用rand()%(b-a+1)+a可获得[a,b]范围内的随机数,线性比例扩大可获得更大范围的随机数。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值