本文主要是介绍C++大学教程(第九版)8.11找出下列语句中的错误,并修改错误,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 题目
- 代码
题目
8.11找出下列语句中的错误,并修改错误
代码
// 8.11
#include <iostream>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<long*>(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<short *>(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++大学教程(第九版)8.11找出下列语句中的错误,并修改错误的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!