
C++入门
文章平均质量分 58
入门
APX7409
专注后端、C/C++开发的菜鸟,相信日拱一卒、功不唐捐。欢迎各位对博文批评指正,互相学习
展开
-
简单的C语言版本通讯录
C语言实现的通讯录原创 2022-06-09 22:01:14 · 122 阅读 · 0 评论 -
C语言结构体成员内存对齐问题
首先,有如下结构体:int main(){ struct s{ int i; char c; int d; char a[1]; }; //offsetof输出变量在结构体中起始的位置 printf("offsets: i = %zd; c = %zd; d = %zd; a = %zd\n", offsetof(struct s, i), offsetof(struct s原创 2022-05-26 13:25:59 · 217 阅读 · 0 评论 -
指针和数组名的大小问题
实验系统是64位centos:int main(){ int fd[4]; int *pfd; printf("sizeof(fd):%d\n", sizeof(fd)); printf("sizeof(pfd):%d\n", sizeof(pfd)); return 0;}结果为:结论:对数组名sizeof得到数组大小,对指针sizeof得到的是指针大小...原创 2022-05-11 16:17:10 · 133 阅读 · 0 评论 -
cppPrimer第17章习题
17.3 重写12.3节(第430页)中的TextQuery程序,使用tuple代替QueryResult类,你认为哪种设计好,为什么?TextQuery.h#pragma once#ifndef TEXTQUERY_H#define TEXTQUERY_H#include<iostream>#include<vector>#include<string>#include<map>#include<set>#include<原创 2022-04-14 19:38:04 · 171 阅读 · 0 评论 -
cppPrimer第七章习题
7.3 修改7.1.1节交易程序,令其使用这些成员struct Sales_data { std::string bookNo; unsigned units_sold = 0; double revenue = 0.0; string isbn() const { return bookNo; } Sales_data& combine(const Sales_data& rhs) { units_sold += rhs.units_sold; revenue +=原创 2022-03-06 10:08:41 · 465 阅读 · 0 评论 -
cppPrimer第六章习题
6.1 实参和形参的区别是什么?实参是形参的初始值,实参是调用函数时提供的,第一个实参初始化第一个形参,第二个实参初始化第二个形参,以此类推。6.2 指出下列函数哪个有错误,为什么?应该如何修改这些错误?(a) //实际返回值和指定返回值不一致int f(){ string s; return s;}(b)//没有给出返回值f2(int i){/*....*/}(c)//形参不可以重名,且函数体漏了{int calc(int v1,int v1)/**/}(d)/原创 2022-03-02 16:10:40 · 453 阅读 · 0 评论 -
cppPrimer第五章习题
5.1 什么是空语句?何时会用到空语句?空语句中只含有一个单独的分号,如果在程序的某个地方,语法上需要一条语句(如while和for),但逻辑上不需要,此时应该使用空语句。5.2 什么是块,什么时候会用到块复合语句是指用花括号括起来的(可能为空的)语句和声明的序列,复合语句也被称为块,一个块就是一个作用域。语法上需要一条语句,但是逻辑上需要多条语句,则应该使用复合语句(块)。5.3 使用逗号运算符重写1.4.1节的while循环,使它不再需要块,观察改写后的代码的可读性提高了还是降低了whil原创 2022-02-24 16:17:22 · 583 阅读 · 2 评论 -
cppPrimer第四章习题
4.3 C++语言没有明确规定大多数二元运算符的求值顺序,给编译器优化留下余地。这种策略实际上是在代码生成效率和程序潜在缺陷之间进行权衡,你认为这可以接受吗?请说出你的理由。对于没有指定执行顺序的运算符来说,如果表达式指向并修改了同一个对象,将会引发错误并产生为定义行为如:cout<<i<<" "<<++i<<endl; //不能确定先执行++i还是i而如果运算对象彼此无关,它们既不会改变同一对象的状态也不执行IO任务,则函数掉用顺序不受限制。所以在一定原创 2022-02-21 15:46:12 · 345 阅读 · 0 评论 -
cppPrimer第三章习题
3.3 请说明string类的输入运算符和getline函数分别是如何处理空白字符的string类输入运算符会忽略开头的空白(空格符、换行符、制表符等),从第一个真正的字符开始读起,直到遇见下一处空白为止。getline(istream& is, string str)函数会保留在一行中输入的空白符。getline函数的参数是一个输入流和一个string对象,函数从给定的输入流中读入内容,直到遇到换行符为止。3.12 判断下列vector对象定义有不正确的吗?如果有,请指出来。对于正确的,原创 2022-02-21 15:44:49 · 523 阅读 · 0 评论 -
cppPrimer第一章习题
1.6 程序不合法,v1;后代表该行代码已经结束,下面两行>>左边需要有一个ostream对象,应该修改为:cout << "The sum of " << v1;cout << " and " << v2;cout << " is " << v1 + v2 << endl;1.7 编译器会提示嵌套后面的内容为未定义标识符1.8std::cout << "/*"; //输出:/*原创 2022-01-23 23:06:37 · 322 阅读 · 0 评论 -
剑指 Offer 38. 字符串的排列【未写说明】
题目输入一个字符串,打印出该字符串中字符的所有排列。你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。示例输入:s = “abc”输出:[“abc”,“acb”,“bac”,“bca”,“cab”,“cba”]C++实现class Solution {public: vector<string> permutation(string s) { dfs(s,0); return ans; }private: v原创 2021-11-18 20:14:48 · 723 阅读 · 0 评论 -
导入他人项目并添加头文件仍后无法识别头文件中声明的变量或函数
问题:导入对应头文件后,仍然提示没有匹配的函数实例(环境为VS2017):原因:可能是因为程序设计者所使用的开发环境下用的字符集和我们本机不一致。解决方法:将字符集修改为多字节字符集。...原创 2021-09-30 02:53:25 · 1254 阅读 · 0 评论 -
位域以及符号扩展的一个小问题
注解:首先讲个位域的写法,在结构体定义中,定义变量名的后面加上冒号加上限定的位数。typedef struct { short a; short b; short c:1; //位域,代表变量c只分配1bit的内存空间 short reserved : 15;}_FORTEST;...原创 2021-08-29 15:15:16 · 142 阅读 · 0 评论 -
自定义类型中有指针变量成员时,赋值运算符重载返回值和参数须为引用类型
问题描述:对于自定义类型中含有指针类型成员变量时候,赋值运算符重载时函数返回值和参数类型为什么一定要是引用类型?case 1:返回值必须为引用类型的理由:赋值运算符重载在,如果返回值为值类型即14行变为Person operator=(Person & p)即返回值为值类型,那么函数调用结束后返回值类型,对于外部函数的调用栈来说是一个临时对象。 而临时对象是一个右值(就是在栈内存中不存在,生命周期在一个完整表达式结束后就结束,即p3 = p2 = p1;语句执行完之后结束),在原创 2021-05-31 15:51:57 · 341 阅读 · 0 评论 -
0x0FA23729 (vcruntime140d.dll)处(位于 类和对象-封装.exe 中)引发的异常(已解决)
#include<iostream>#include<string>using namespace std;class Person{public: //设置姓名 void setName(string name) { m_Name = name; } //获取姓名 string getName() { return m_Name; } //获取年龄 int getAge() { //m_Age = 0; //初始化年龄为0岁 .原创 2021-02-05 21:46:53 · 5818 阅读 · 15 评论