C++大学教程(第九版)8.11找出下列语句中的错误,并修改错误

文章目录

  • 题目
  • 代码

题目

8.11找出下列语句中的错误,并修改错误
C++大学教程(第九版)8.11找出下列语句中的错误,并修改错误_第1张图片
C++大学教程(第九版)8.11找出下列语句中的错误,并修改错误_第2张图片

代码

// 8.11
#include 

using namespace std;

int main()
{
    // a
    // int *number;//未初始化指针
    // cout << number << endl;
    
    // 修改后
    //  int *number=nullptr;
    //  cout << number << endl;

    // b
    // double *realPtr;//没有初始化
    // long *integerPtr;//没有初始化
    // integerPtr = realPtr;//需要强制类型转换

    // 修改后
    // double* realPtr = nullptr;
    // long* integerPtr = nullptr;
    // integerPtr = reinterpret_cast(realPtr);

    // c
    //  int *x, y;//y没有初始化
    //  x = y;//缺少取地址运算符

    // 修改后
    //  int* x = nullptr; // 初始化指针为nullptr
    //  int y = 5; // 非指针变量
    //  x = &y; // 将y的地址赋给x

    // d
    // char s[] = "This is a character array";
    // for (; *s != '\0';s++){
    //     cout << *s << ' ';
    // }
    /*错误:循环条件:在for循环中,使用了一个空的初始化部分,没有指定循环变量的初始值。
    此外,在循环条件中,使用了指针s作为判断条件,但在循环体内部又对s指针进行了递增操作,
    这可能导致循环条件始终为真,造成无限循环。*/

    // 修改后
    // for (char *ptr = s; *ptr != '\0'; ptr++)//定义一个指针,指向字符数组地址,利用它遍历数组
    // {
    //     cout << *ptr << ' ';
    // }

    // e
    // short *numPtr = nullptr, result;
    // void *genericPtr = numPtr;
    // result = genericPtr + 7;

    // 修改后
    // short *numPtr, result;
    // void *genericPtr = nullptr;
    // numPtr = new short;  // 分配 short 类型的内存,并将地址赋给 numPtr
    // genericPtr = numPtr; // 将 numPtr 赋值给 genericPtr
    // // cout << "*numPtr = " << *numPtr << endl; // 输出 numPtr 指向的值
    // result = *reinterpret_cast(genericPtr) + 7; // 进行指针运算
    // // cout << "Result: " << result << endl;
    // delete numPtr; // 释放内存

    // f
    // double x = 19.34;
    // double xPtr = &x;//定义指针,没有加上间接运算符(*) )
    // cout << xPtr << endl;//xPtr输出的是指针所指的地址,*xPtr输出的是指针所指向地址中的值

    // 修改后
    // double x = 19.34;
    // double *xPtr = &x;
    // cout << *xPtr << endl;
    return 0;
}

你可能感兴趣的:(C++大学教程,c++,开发语言)