printf()函数

2023-11-18

printf函数对输出表中各量求值的顺序是自右至左进行的(也即程序执行的过程中参数的压栈顺序是从右至左的,并且压栈时压入的是值,因为参数的压栈是在程序的执行过程中,所以即使参数列表中有函数调用则在压栈时也即计算出来(即调用此函数去执行),把得到的值压入栈中。

如:

static const char * msg[]={"sunday","monday" };
char * get_a_day(int idx)
{
 static char buf[20];
// cout<<(int *)&buf<<endl;  //验证static的静态性
    
 strcpy(buf,msg[idx]);

// cout<<buf<<endl;
 return buf; //返回指针
}
void main(void)
{
   cout<<get_a_day(0)<<endl;
   cout<<"--------"<<endl;
   cout<<get_a_day(1)<<endl;
   cout<<"---------------"<<endl;

 printf("%s  %s\n",get_a_day(0),get_a_day(1));       //先计算get_a_day(1),得到buf指向"monday" ,然后计算get_a_day(0),得到buf指向'sunday" ,两个参数列表都是buf指 针,     最 后 都指向“sunday”
 cout<<"-----"<<endl;
 printf("%s",get_a_day(0));
 cout<<endl;
 printf("%s\n",get_a_day(1));

 int i=2;
 printf("%d  %d\n",++i,++i);
 cout<<i<<endl;
}

运行结果为:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

printf()函数 的相关文章

随机推荐

  • go并发模型GPM

    线程模型的三种实现方式 用户级线程 M 1对应关系 多个用户态线程对应着一个内核线程 用户态线程的创建 终止 切换 同步等线程工作必须由自身来完成 内核级线程 1 1对应关系 直接调用操作系统的内核线程 所有线程的创建 终止 切换 同步等操
  • mysql数据库丢库记

    2021 1 29 记 环境 Windows10 mysql5 6 Navicat12 原因 电脑突然关机 启动后通过Navicat连接发现少了一个库 让人无比迷茫 为啥会出现丢库现象 解决方案 无比庆幸的是在几个小时之前 我对丢失的库做过
  • 赋值运算符的错误使用举例

    和 运算符的错误使用 运算符在C语言中为赋值运算符 运算符为检查符号两边的值是否是相等的操作 当某些程序的本意是比较运算符的时候 可能会无疑写成了赋值运算符 比如下面的程序 本意是要检查x是否等于y 但是实际上是把y的值的赋值给了x 然后去
  • android studio 编译时出现 Build completed with 1 failures错误

    okhttp keep class okhttp3 keep interface okhttp3 dontwarn okhttp3 出现 Build completed with 1 failures 这个问题上面只是导致这个错误的一种 出
  • 嵌入式linux基础学习全套精品视频教程

    嵌入式linux基础学习全套精品视频教程 在给大家分享教程之前 首先给大家简要的介绍一下嵌入式linux 嵌入式linux 是将日益流行的Linux操作系统进行裁剪修改 使之能在嵌入式计算机系统上运行的一种操作系统 嵌入式linux既继承了
  • nginx中自动在二级目录后加斜杠

    有时候在Nginx的伪静态中 二级目录无法自动加斜杠 导致目录无法打开 可以加 optimize server names off server name in redirect off 但是又时候可能不通用 所以在虚拟主机中加入一段万能的
  • kuangbin的模板

    直接链接 间接链接
  • 使用DbHelperSQL调用存储过程的方法

    下面代码是个调用存储过程的例子 对于学习怎么使用DbHelperSQL调用存储过程很有帮助
  • ceph 维护系列(二)--卸载osd

    一 摘要 本文主要介绍从ceph 某台节点上卸载一块或者多块osd 硬盘 二 环境信息 2 1 操作系统版本 root proceph05 cat etc centos release CentOS Linux release 7 6 18
  • SSM框架搭建,及遇到的问题

    SSM框架搭建 及遇到的问题 1 基本概念 1 1 Spring Spring是一个开源框架 Spring是于2003 年兴起的一个轻量级的Java 开发框架 由Rod Johnson 在其著作Expert One On One J2EE
  • 使用NNI对BERT模型进行粗剪枝、蒸馏与微调

    前言 模型剪枝 Model Pruning 是一种用于减少神经网络模型尺寸和计算复杂度的技术 通过剪枝 可以去除模型中冗余的参数和连接 从而减小模型的存储需求和推理时间 同时保持模型的性能 模型剪枝的一般步骤 训练初始模型 训练一个初始的神
  • win10 WSL2 Ubuntu图像化界面安装和配置

    1 win11 设置 打开虚拟机安装许可 2 开启开发者模式 2 Microsoft Store下载安装ubuntu 我这里使用的是20 04 5LTS版本 3 打开ubuntu 命令窗口 1 打开win11的命令行 在下拉三角下标 打开
  • 【云原生之Docker实战】使用Docker部署宝塔面板

    云原生之Docker实战 使用Docker部署宝塔面板 一 宝塔面板介绍 二 检查本地docker环境 1 检查系统版本 2 检查内核版本 3 检查docker版本 三 下载宝塔镜像 四 部署宝塔面板 1 创建挂载目录 2 创建宝塔容器 3
  • 四、C++语言进阶:Boost入门

    4 Boost入门 4 1 简介 Boost库是一个可移植 提供源代码的C 库 作为标准库的后备 是C 标准化进程的开发引擎之一 是为C 语言标准库提供扩展的一些C 程序库的总称 4 2 使用 4 2 1 lamdba表达式 lambda库
  • 字符设备

    from here 字符设备http blog 163 com sunshine linting blog static 44893323201181102957282 字符设备是一种按字节来访问的设备 字符驱动则负责驱动字符设备 这样的驱
  • C++Static成员

    Static成员 概念 声明为static的类成员称为类的静态成员 用static修饰的成员变量 称之为静态成员变量 用static修饰的成员函数 称之为静态成员函数 静态成员变量一定要在类外进行初始化 例题 实现一个类 计算程序中创建了多
  • Mysql索引原理

    Mysql索引类型及其特性 1 普通索引 最基本的索引 它没有任何限制 也是我们大多数情况下用到的索引 直接创建索引 CREATE INDEX index name ON table column length 修改表结构的方式添加索引 A
  • Linux深度系统分区顺序,深度Deepin 20操作系统默认全盘分区不合理?附建设性意见探讨...

    有的网友认为深度 Deepin 20 操作系统默认全盘分区不合理 以下是某位深度网友的个人意见 首先 必须认为默认全盘分区的确存在一些不合理 以下是建设性意见 供与网友们一起探讨 建设性意见内容如下 1 EFI 引导分区 315M 实际使用
  • Javascript模块化规范之CommonJs,AMD,CMD

    Javascript模块化编程规范 一 模块化编程背景 1 什么是模块化编程 2 Javascript模块化编程有哪些规范 二 Javascript模块化编程 1 CommonJs 2 AMD异步模块定义 3 CMD 通用模块定义 4 ES
  • printf()函数

    printf函数对输出表中各量求值的顺序是自右至左进行的 也即程序执行的过程中参数的压栈顺序是从右至左的 并且压栈时压入的是值 因为参数的压栈是在程序的执行过程中 所以即使参数列表中有函数调用则在压栈时也即计算出来 即调用此函数去执行 把得