欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

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

发布时间:2024/9/27 编程问答 43 豆豆

考点:

函数printf()的执行机制:参数按照从右至左的顺序入栈,在调用时出栈;

考察运算符“++”在变量之前、变量之后的运算机制,即是先赋值/还是先自增

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

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

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

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

#include

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;

printf("---fc5---\n");

printf("%d %d",*p,*(p+1));

}

void fc6(int arr[])

{

//区分*++p与*(++p);//arr2[]={1,3,5,7,9},预计输出1,3;实际输出1,3

int *p=arr;

printf("---fc6---\n");

printf("%d %d",*p,*++p);

}

void fc7(int arr[])

{

//区分*p++与*(p++);//arr2[]={1,3,5,7,9}预计输出1,2;实际输出1,1

//考察取值运算符*与自增运算符++的优先级

int *p=arr;

printf("---fc7---\n");

printf("%d %d",*p,*p++);

//解析:++的优先级高于*,所以先做指针自增预算(p++预算过程为:p=p;p++,所以指针p还是指向的数组中第一个元素),在做取值运算;

}

int main()

{

int arr[] = {6,7,8,9,10},arr2[]={1,3,5,7,9};

fc1(arr);

fc2(arr);

fc3(arr);

fc4(arr);

fc5(arr);

fc6(arr2);

fc7(arr2);

return 0;

}

以下为代码段的实际运行结果:

标题

总结

以上是生活随笔为你收集整理的c语言printf里的自增,笔试题记录:C语言——函数printf()的执行机制;先自增与后自增的区别;取值运算与自增运算的优先级...的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。