笔试题记录:C语言——函数printf()的执行机制;先自增与后自增的区别;取值运算与自增运算的优先级

本文探讨了C语言中函数printf()的执行机制,参数由右向左入栈并在调用时出栈。同时,文章重点分析了先自增与后自增的区别以及取值运算与自增运算的优先级。举例说明了*p++、*++p、*(p+1)等表达式的实际运行效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

考点:

  • 函数printf()的执行机制:参数按照从右至左的顺序入栈,在调用时出栈;
  • 考察运算符“++”在变量之前、变量之后的运算机制,即是先赋值/还是先自增

          *(p++)、*(++p)、*(p+1)之间的区别 

  • 后面两项主要是考察:取值运算与自增运算的优先级;(自增运算>取值运算)

        *p++与*(p++)——>没有区别

        *++p与*(++p)——>没有区别


#include <stdio.h>
void fc1(int arr[])
{
	
  //分别输出,预计输出6,7;实际输出6,7
  int *p = arr;
  printf("---fc1---\n");
  printf("%d", *p);
  printf("%d\n",*(++p));
}
void fc2(int arr[])
{
  //同时输出,预计输出7,7;实际输出6,7
  printf("---fc2---\n");
  int *p = arr;
  printf("%d,%d\n",*p, *(++p));
}
void fc3(int arr[])
{
	//测试++p,与p++,预计输出6,6;实际输出6,6
  int *p = arr;
  printf("---fc3---\n");
  printf("%d", *p);
  printf("%d\n",*(p++));
}
void fc4(int arr[])
{
  //同时输出测试二,预计输出6,6,实际输出6,6
  int *p = arr;
  printf("---fc4---\n");
  printf("%d,%d\n", *p,*(p++));
}
void fc5(int arr[])
{
//预计输出6,7,;实际输出6,7
    int *p=arr;
	
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值