随笔分类 - 一天一道面试题
i++问题
摘要:例题,以下代码的输出结果是什么?#include int main(){ int arr[] = {6,7,8,9,10}; int *ptr = arr; *(ptr++) += 123; printf("%d,%d\n",*ptr,*(++ptr)); return 0;}解析: 首先明确C中的printf函数是从右到左压栈的。 *(ptr++) += 123; 等同于 *ptr =*ptr + 123; ptr++;(就算ptr++有括号也是要后算的)。此时ptr指向数组第二个元素7. printf("%d,%d\n",*ptr,*(++ptr))
阅读全文
赋值语句
摘要:例题,求输出结果。 1 #include 2 using namespace std; 3 int func(int x) 4 { 5 int count=0; 6 while(x) 7 { 8 count++; 9 x = x & ( x-1 );10 11 }12 return count;13 }14 15 int main()16 {17 cout<<func(9999)<<endl;18 return 0;19 } 分析本题func函数可知其返回值是形参x转化为...
阅读全文
浙公网安备 33010602011771号