首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当cout显示正确的大小时,为什么printf会为矢量大小显示0?

当cout显示正确的大小时,为什么printf会为矢量大小显示0?

这个问题可能与C++中的cout和printf函数的使用有关。首先,让我们了解一下这两个函数的基本用法和区别。

cout是C++标准库中的输出流对象,用于向标准输出设备(通常是屏幕)输出文本。printf则是C语言中的输出函数,用于向标准输出设备输出格式化的文本。

在某些情况下,cout和printf的输出可能会有所不同。这可能是因为它们处理数据类型和格式化的方式不同。例如,cout可能会自动将数据类型转换为字符串,而printf则需要使用格式化字符串来指定输出格式。

关于矢量大小,这可能是指输入数据的大小。如果输入数据的大小不同,那么输出的结果可能也会有所不同。

因此,如果cout显示正确的大小,而printf显示矢量大小为0,可能是因为两者处理数据的方式不同,或者输入数据的大小不同。为了解决这个问题,您可以尝试检查输入数据的大小,并确保在使用cout和printf时使用正确的格式化字符串。

总之,当cout显示正确的大小时,printf会为矢量大小显示0可能是因为两者处理数据的方式不同,或者输入数据的大小不同。您可以检查输入数据的大小,并确保在使用cout和printf时使用正确的格式化字符串。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【第3版emWin教程】第32章 emWin6.x矢量字体(支持汉字全字库,Unicode编码,QSPI Flash方案)

矢量字体也有缺点,即非常消耗内存。但是本教程配套开发板STM32H7是支持外接SDRAM和支持内存映射方式QSPI Flash,这样就有容量空间供矢量字体使用了。...这么说来,Type1应该比TrueType更具有优势,为什么如今计算机上TrueType反而比Type1使用更广泛呢?...并且项目中需要多种字体大小支持的话,需要几种字体支持,就需要生成几种点阵字库,非常占空间,而矢量字体仅需要一个字体库就可以了。特别是显示大字体,矢量字体库优势更明显。...2、(1) 凡是用到printf函数全部通过函数App_Printf实现。 (2) App_Printf函数做了信号量互斥操作,解决资源共享问题。...做为emWin动态内存,配置: #define EX_SRAM 1 表示使用外部SDRAM作为emWin动态内存,大小24MB。

68831

C++系列笔记(一)

这些内容被组织成结构合理、联系紧密章节,每章都可在1小时内阅读完毕;每章都提供了示例程序清单,并辅以示例输出和代码分析,以阐述该章介绍主题。 本文是系列笔记第一篇,欢迎各位阅读!...第一章(上) 1、在C++中,可不显示地指定变量类型,使用关键字auto例如:auto flag=true。这里将指定变量flag类型交给了编译器,编译器会自动确定变量应为什么类型。...,声明枚举常量时,编译器把枚举值(voilet等)转化为整数,每个枚举值都比前一个1.可以自己指定初始值,没有指定的话初始值为0.3、为减少内存占用,可以用std::vector来定义动态数组。...Area(radius, AreaFet); cout << "the area is:" << AreaFet << endl; return 0; } 8、内联函数定义一个函数时...} 定义函数提供形式参数时,要将所有有默认参数值参数放在列表末尾,要么给所有参数都指定默认值。

34230
  • 深度解析C++中函数重载与引用

    } 1.2 C++支持函数重载原理–名字修饰(name Mangling) 为什么C++支持函数重载,而C语言不支持函数重载呢?...&a); printf("%p\n", &ra); printf("%p\n", &rra); } //打印结果: /* 00AFF9A0 00AFF9A0 00AFF9A0 */ 2.3 常引用...,尤其是参数或返回类型非常时,效率就更低。...没有NULL引用,但是又NULL指针 再sizeof中含义不同:引用结果为引用类型大小,但是指针始终是地址空间所占字节数个(根据所在平台确定,如32位平台占4个字节) 引用自加即引用实体加1,指针自加即指针向后偏移一个类型大小...访问实体方式不同,指针需要显示解引用,引用编译器自己处理。 引用比指针使用起来相对安全。

    8910

    C++ Primer Plus习题及答案-第十六章

    从概念上或语法上说,下面哪个不是正确使用auto_ptr方法(假设已经包含了所需头文件)?...为什么STL设计人员仅定义了迭代器基类,而使用继承来派生其他迭代器类型类,并根据这些迭代器类来表示算法?...与编程练习1中给出问题相同,但要考虑诸如大小写、空格和标点符号这样复杂问题。即“Madam,I'm Adam”将作为回文来测试。...姓名存储在另一个容器中,然后按排列后顺序显示出来。 创建第三个容器,将两个列表合并,删除重复部分,并显示这个容器内容。...鉴于当今计算机速度非常快,要获得有意义结果,可能需要使用尽可能数组。例如,可尝试包含100000、1000000和10000000个元素。

    96020

    c++基础(1)

    c语言是结构化和模块化语言,用于处理规模较小程序。问题需要高度抽象和建模时,c语言不适合。...   printf("%d\n", pearl1::a); return 0; } 2、使用using将某个空间成员引入 using pearl::b; int main() {    printf...; } 那么为什么c语言支持函数重载,而c++不支持呢?...1 引用必须要初始化,指针可以不用初始化 2 引用在引用时只能引用一个实体,而多个指针可以指向同一个实体 3sizeof结果不同,引用中计算是引用内容大小,而指针是地址空间大小 4引用中+1是引用实体加一...,而指针是偏移一个类型大小 5指针需要显示解引用,指针只需要自己处理 6引用比指针更加安全 内联函数 概念 以inline修饰函数叫作内联函数,在gcc编译器下,只有内联函数才会展开 auto关键字

    8910

    C++第三弹 -- 类与对象上篇

    封装 面试题: 面向对象特征: 封装, 继承, 多态. 在类和对象阶段, 主要是研究类封装特性, 那什么是封装呢?...比如: 对于电脑这样一个复杂设备, 提供给用户就只有开机键, 通过键盘输入, 显示器, USB插孔等, 让用户和计算机进行交互, 完成日常事务, 但实际上电脑真正工作却是CPU, 显卡, 内存等一些硬件元件..._top--; cout << sizeof(st1) << endl; cout << sizeof(Stack) << endl; return 0; } 对于成员变量每个实例化对象都存储一份...如果嵌套了结构体情况,嵌套结构体对齐到自己最大对齐数整数倍处,结构体整 体大小就是所有最大对齐数(含嵌套结构体对齐数)整数倍。 【面试题】 结构体怎么对齐? 为什么要进行内存对齐?...每个函数第一个参数都是Stack* 函数中必须要对第一个参数检测,因为该参数可能会为NULL 函数中都是通过Stack*参数操作栈 调用时必须传递Stack结构体变量地址 结构体中只能定义存放数据结构

    6310

    类和对象(上篇)

    封装 面向对象特性:封装、继承、多态。 封装:将数据和操作数据方法进行有机结合,隐藏对象属性和实现细节,仅对外公开接口来和对象进行交互。 封装本质上是一种管理,让用户更方便使用类。...return 0; } 正确方法如下: nt main() { Person a; a._age = 100; return 0; } 做个比方。...,而建房子才是类实例化 类对象模型 如何计算类对象大小 下面给出一段代码,求他所占内存大小 class A { public: void PrintA() { cout<<_a<<...这里答案是1,所占内存大小就只有_a大小为什么呢,我们接着来了解类存储方式 类对象存储方式猜测 首先我们来假设一种情况: 就是函数也存在对象中: 由于每个对象中成员变量是不同,但是调用同一份函数...第一个大小是4我相信大家应该都能答对 但是第二个第三个答案是1! 大家都在想,明明类里面完全是空为什么还有一个字节空间呢?

    11210

    【C++深度探索】全面解析多态性机制(二)

    1; }; int main() { cout << sizeof(Base) << endl; return 0; } 当我们计算Base类大小时,发现只有一个int类型成员变量_b,所以应该是...因为上述例子是在32位操作系统下执行,所以指针大小是4字节,Base类大小是8字节;如果是64位那么指针大小是8字节,Base类大小就应该参考结构体内存对齐规则,应该是16字节。...\n", p2); printf("Base虚表地址:%p\n", *(int*)&b); printf("Derive虚表地址:%p\n", *(int*)&d); return 0; }...派生类实例化时,会为每个基类分配一个虚表指针,这些虚表指针会存储在派生类对象内存中。...= nullptr; ++i) { printf(" 第%d个虚函数地址 :0X%x,->", i, vTable[i]); VFPTR f = vTable[i]; f(); } cout

    10010

    c++ list, vector, map, set 区别与用法比较

    STL内部实现时,首先分配一个非常内存空间预备进行存储,即capacituy()函数返回大小超过此分配空间时再整体重新放分配一块内存存储,这给人以vector可以不指定vector即一个连续内存大小感觉...(3) 动态添加数据超过vector默认分配大小时要进行整体重新分配、拷贝与释                      放  2 list     双向链表     每一个结点都包括一个信息快...,"list2"); //显示序列状态信息 cout<<"list1.max_size(): "<<list1.max_size()<<endl; cout::size_type i=0; i<number.size(); i++)       cout << " " << number[i]   排序矢量元素: 对矢量元素排序可以使用

    10.1K90

    Linux应用开发【第一章】Framebuffer应用开发

    矢量字体引入 1.5.2 Freetype理论介绍 1.5.2 在LCD上显示一个矢量字体 1.5.3 在LCD上令矢量字体旋转某个角度 1 Framebuffer应用开发 1.1 LCD Framebuffer...其中‘1’表示一种颜色,‘0’表示填充另一种颜色。上图是8*16点阵,我们也可以用其他不同大小点阵,只要有这个点阵,我们就可以在LCD上面描点,达到显示字符效果。...1.6 使用freetype 1.5.1 矢量字体引入 ​ 点阵显示英文字母,汉字时,大小固定,如果放大会有锯齿出现,为了解决这个问题,引用矢量字体。...(glyph); ③设置字体; ④用某些函数把关键点(glyph)缩放为我们设置字体大小; ⑤转换为位图点阵 ⑥在LCD上显示出来 ​ 如上图,参照step1,step2,step3里内容,可以学习如何使用...1.5.3 在LCD上令矢量字体旋转某个角度 在实现显示一个矢量字体后,我们可以添加让该字旋转某个角度功能。

    1.8K60

    【C++】————类与对象(上)-基础知识

    注意:在继承和模板参数列表位置,struct和class也有区别,后序给 家介绍。 4.2 封装 【面试题】 面向对象特性:封装、继承、多态。...比如:对于电脑这样一个复杂设备,提供给用 户就只有开关机键、通过键盘输入,显示器,USB插孔等,让用户和计算机进行交互,完成日 常事务。...7.1 如何计算类对象大小 class A { public: void PrintA() { cout<<_a<<endl; } private: char _a; }; 问题:类中既可以有成员变量...第一个成员在与结构体偏移量为0地址处。 2. 其他成员变量要对齐到某个数字(对齐数)整数倍地址处。 注意:对齐数 = 编译器默认一个对齐数 与 该成员大小较小值。...为什么要进行内存对齐? 2. 如何让结构体按照指定对齐参数进行对齐?能否按照3、4、5即任意字节对齐? 3. 什么是大小端?

    7110

    C++入门基础

    幸福比傲慢更容易蒙住人眼睛。 ——大仲马 1、属于C++关键字 1、1、C++从何而来 为什么会出现C++呢?为什么C++关键字和C语言相对比起来,有着不少增加?...printf("%d\n", a); return 0; } 那我们该怎么去找到这里a呢?...将命名空间中某个成员引入 using N::b; int main() { printf("%d\n", N::a); printf("%d\n", b); return 0;...,而是传递实参或者返回变量一份临时拷贝,因此用值作为参数或者返回值类型,效率是非常低下,尤其是参数或者返回值类型非常时,效率就更低。...5、sizeof计算不同,引用结果为引用类型大小,但是指针始终是地址空间所占字节个数(32位平台下占4个字节) 6、引用自加1,即实体加1。指针自加则是向后偏移一个类型大小

    16010

    C++-类和对象(1)

    注意:在继承和模板参数列表位置,struct和class也有区别,后序给 家介绍。 4.2 封装 面向对象特性:封装、继承、多态。...比如:对于电脑这样一个复杂设备,提供给用 户就只有开关机键、通过键盘输入,显示器, USB 插孔等,让用户和计算机进行交互,完成日 常事务。...7.类对象模型 7.1 如何计算类对象大小 class A { public: void PrintA() { cout << _a << endl; } private: char...如何计算 一个类大小? 一个类大小,实际就是该类中 ” 成员变量 ” 之和,当然要注意内存对齐. 注意空类大小,空类比较特殊,编译器给了空类一个字节来唯一标识这个类对象。...下面这段代码可以正常运行,为什么呢? 因为成员函数地址不存放在对象里面,成员变量地址才存放在对象里面, // 1.下面程序编译运行结果是?

    11810

    C屁屁(c++)万字入门

    (定点破墙) using N::b; int main() { printf("%d\n", N::a); printf("%d\n", b); return 0; }  3、使用...引用 6.1 引用概念 引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空 间,它和它引用变量共用同一块内存空间。...做返回值 int& Count() { static int n = 0; n++; // ... return n; } 下面代码输出什么结果?为什么?...如果小的话则由寄存器传递,的话则用栈来传递),因此用值作为参数或者返回值类型,效率是非常低下(中间有二手商),尤其是参数或者返回值类型非常时,效率就更低。...回答上个小标题最后问题,由于传值时,是传中间变量,所以就算原值或其对应地址都没有了,也可以将正确值返回。

    56210
    领券