C++基础部分(面向过程)自学总结

C++基础部分(面向过程)自学零碎小点总结

(个人总结,仅供参考,欢迎指出错误!)

(一)C++与C

  • C++的输入输出通过“流(stream)”实现,提供了标准输入输出流对象cin、cout。
  • C++引入了命名空间来解决命名冲突(如两个同名函数)的问题。
  • C++提供了函数重载、函数模板、默认参数。
  • C++中的变量定义可以在任意行。
  • C++中很重要的一个内容就是引用
  • C++中用 newdelete 来分配和释放内存(C中则使用 malloc 和 free )。

(二)变量

  • C++中增加了 long long 类型(超长整型)(long 等同于 long int,short 等同于 short int,long long 等同于 long long int)。

  • 在float类型变量赋值时最好在数值末尾加一个 f 。

  • C++中常见数据类型所占字节(32位系统):

    常见数据类型所占字节数
    char1
    bool1
    int4
    float4
    double8
  • C++ 中定义字符串有两种风格:

    • C 语言风格:char 变量名[] = "字符串值";
    • C++ 风格:string 变量名 = "字符串值";(更为常用)
  • C++中定义常量两种方式:

    • 定义宏常量:#define PAI 3.14
    • const 修饰变量:const int a = 10;(更为常用)

(三)运算符与表达式

  • 运算符优先级:
    • ()控制顺序,优先级最高;
    • 单目运算符包括 !、++、–、sizeof()优先级仅次于();
    • 算术运算符 > 关系运算符 > 逻辑运算符;
    • 只有赋值运算符、三目运算符是从右向左结合性。
  • 除法(/)、取模(%)两种运算均要求除数不能为 0

(四)选择与循环

  • break 与 continue
    • break 可以用于跳出条件语句 switch,也可以用于跳出当前循环语句(若有多层循环,则跳出最近的内层循环),结束当前循环
    • continue 用于跳过当前循环体剩下语句,直接进行下一次循环,并不会结束循环
  • xxx

(五)数组

  • 数组名的作用:
    • 统计整个数组在内存中的长度sizeof(arr) / sizeof(int)
    • 获取数组在内存中的首地址int *p = arr;

(六)函数

  • 值传递时,形参的改变不影响实参;而地址传递引用传递都会改变实参值(简单来说,还有更复杂情况)。

(七)指针

  • *的两种用法
    • 定义指针变量:int *p = &a;
    • 解引用操作(即取出指针变量指向的值):cout << *p <<endl;
  • &的两种用法
    • 取地址符:int *p = &a;
    • 引用:int &a = b;
  • 使用引用要注意:①必须初始化;(int &b;✖)②必须绑定对象int &b = 10;✖)
  • 空指针(NULL)与野指针(指向了未申请的内存空间)都是不可以访问的,编程中要尽量避免。
  • 指针变量所占内存大小(32位系统):4 字节
  • const 修饰指针(重难点
    • 常量指针:const 修饰指针(简记为 const 在 * 之前),指针的指向可以修改,但指向的值不可以修改const int * p = &a;
    • 指针常量:const 修饰常量(简记为 const 在 * 之后),指针指向的值可以修改,但指针的指向不可以修改int * const p = &a;
    • const 同时修饰指针和常量:此时的指针指向和指针指向的值均不可以修改。const int * const p = &a;
  • 指针与数组 ——通过指针的偏移来遍历数组:
int arr[10]={1,2,3,4,5,6,7,8,9,10};
int *p = arr;
for(int i=0;i<10;i++){
    cout << *p << endl;
    p++;
}
  • 指针与函数地址传递可以改变实参的值(第二种传值方式)

(八)结构体

  • 结构体是用户自定义的一种数据类型,实际上就是多种基本数据类型的集合。
struct Student{
	string name;  //姓名
	int age;  //年龄
	int score;  //分数
};
  • struct、class、typedef 的理解——另一篇博客
  • 结构体数组
    • 结构体数组访问方式:cout << stuArray[i].name
struct Student stuArray[3] = {  //创建结构体数组并赋值
		{"张三",23,100},{"李四",21,98},{"王五",19,97}
	};
  • 结构体指针
    • 结构体指针访问方式:cout << p->name
student s = {"张三",23,88};
student * p = &s;
cout << "姓名:" << p->name << endl;

总结

C++基础部分内容实际上与C语言是大差不差的,指针、数组、函数同样是基础中的重中之重。需要注意的是引用是C++新增的内容,在C++中占有很重要的地位,之后会重点学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值