C++知识点积累(持续更新中......)
C++基础题错题积累
20200818
1、代码的运行结果
int a[]={1,2,3,4}; int *b=a; //此时*b指向a[0]=1 *b += 2; //此时a[0]的值加2即为3 *(b+2) = 2; //此时为a[2]=2,重新赋值,但此时*b的指向没有发生变化 b++; //此时*b指向下一个,即a[1]=1 printf("%d, %d\n", *b, *(b+2)) //所以最终输出结果为2,4
2、关于内联函数的正确说法
- 1、一般用于加快程序的执行速度
- 2、可能增加也可能减小执行文件的大小。当只有一个地方调用了内联函数的时候,编译器会在调用处将内联函数展开,这样就少了函数的跳转指令,栈的扩展指令,因此可能减小文件的大小。
- 3、使用内联函数的时候,只是向编译器提出一个申请,编译器是否接受这个申请往往看函数体的大小,函数体过大时一般的编译器会放弃内联方式,而采用普通的方式调用函数,此时执行效率并没有发生变化。