c语言printf里的自增,笔试题记录:C语言——函数printf()的执行机制;先自增与后自增的区别;取值运算与自增运算的优先级...
考點:
函數(shù)printf()的執(zhí)行機(jī)制:參數(shù)按照從右至左的順序入棧,在調(diào)用時出棧;
考察運算符“++”在變量之前、變量之后的運算機(jī)制,即是先賦值/還是先自增
*(p++)、*(++p)、*(p+1)之間的區(qū)別
后面兩項主要是考察:取值運算與自增運算的優(yōu)先級;(自增運算>取值運算)
*p++與*(p++)——>沒有區(qū)別
*++p與*(++p)——>沒有區(qū)別
#include
void fc1(int arr[])
{
//分別輸出,預(yù)計輸出6,7;實際輸出6,7
int *p = arr;
printf("---fc1---\n");
printf("%d", *p);
printf("%d\n",*(++p));
}
void fc2(int arr[])
{
//同時輸出,預(yù)計輸出7,7;實際輸出6,7
printf("---fc2---\n");
int *p = arr;
printf("%d,%d\n",*p, *(++p));
}
void fc3(int arr[])
{
//測試++p,與p++,預(yù)計輸出6,6;實際輸出6,6
int *p = arr;
printf("---fc3---\n");
printf("%d", *p);
printf("%d\n",*(p++));
}
void fc4(int arr[])
{
//同時輸出測試二,預(yù)計輸出6,6,實際輸出6,6
int *p = arr;
printf("---fc4---\n");
printf("%d,%d\n", *p,*(p++));
}
void fc5(int arr[])
{
//預(yù)計輸出6,7,;實際輸出6,7
int *p=arr;
printf("---fc5---\n");
printf("%d %d",*p,*(p+1));
}
void fc6(int arr[])
{
//區(qū)分*++p與*(++p);//arr2[]={1,3,5,7,9},預(yù)計輸出1,3;實際輸出1,3
int *p=arr;
printf("---fc6---\n");
printf("%d %d",*p,*++p);
}
void fc7(int arr[])
{
//區(qū)分*p++與*(p++);//arr2[]={1,3,5,7,9}預(yù)計輸出1,2;實際輸出1,1
//考察取值運算符*與自增運算符++的優(yōu)先級
int *p=arr;
printf("---fc7---\n");
printf("%d %d",*p,*p++);
//解析:++的優(yōu)先級高于*,所以先做指針自增預(yù)算(p++預(yù)算過程為:p=p;p++,所以指針p還是指向的數(shù)組中第一個元素),在做取值運算;
}
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;
}
以下為代碼段的實際運行結(jié)果:
標(biāo)題
總結(jié)
以上是生活随笔為你收集整理的c语言printf里的自增,笔试题记录:C语言——函数printf()的执行机制;先自增与后自增的区别;取值运算与自增运算的优先级...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python终端指令大全_使用pytho
- 下一篇: util中注入service