gesp c++ 四级知识点

GESP C++四级


一、指针类型

1.1 指针定义与操作

知识点

  • 定义数据类型* 指针变量名;,指针存储变量地址
  • 赋值指针变量 = &变量;(取地址)
  • 解引用*指针变量 访问指向的值
  • 指针运算:指针加减整数表示地址偏移(单位:数据类型大小)

代码示例

#include <iostream>
using namespace std;

int main() {
   
   
    int a = 10;
    int* p = &a;      // p指向a的地址
    *p = 20;          // 通过指针修改a的值
    cout << a << endl; // 输出20

    // 指针运算示例
    int arr[3] = {
   
   1, 2, 3};
    int* ptr = arr;    // ptr指向数组首地址
    cout << *(ptr + 1) << endl; // 输出arr[1]的值2
    return 0;
}
1.2 指针常见错误
int* p;       // 未初始化的野指针(危险!)
*p = 5;       // 访问未知内存地址,可能导致程序崩溃

// 正确做法:
int* p = new int; // 动态分配内存
*p = 5;
delete p;     // 释放内存

二、结构体与多维数组

2.1 结构体定义与使用

知识点

  • 定义struct 结构体名 { 数据类型 成员1; ... };
  • 初始化结构体名 变量 = {成员1值, 成员2值};
  • 成员访问.运算符(普通变量)或 ->(指针)

代码示例

#include <iostream>
using namespace std;

struct Student {
   
   
    string name;
    int age;
    double score;
};

int main() {
   
   
    Student s1 = {
   
   "Alice", 15, 95.5}; // 初始化
    Student* s2 = new Student{
   
   "Bob", 16, 88.0};
    
    cout << s1.name << endl;    // 输出Alice
    cout << s2->age << endl;    // 输出16(指针用->访问)
    delete s2;
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山中习静观潮槿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值