关于C语言中指针运算以及参数入栈顺序的面试题
来源:互联网 发布:淘宝店店铺招牌图片 编辑:程序博客网 时间:2024/06/05 02:10
关于C语言中指针运算以及参数入栈顺序的面试题
代码如下:
#include <stdio.h>int main(){int b =3;int arr[] = {6, 7, 8, 9, 10};int *ptr = arr;*(ptr++) += 123;printf("%d, %d\n"m *ptr, *(++ptr));return 0;}
上面的代码输出为:8,8。
分析如下:
对于语句:
*(ptr++) += 123;
*ptr += 123;
ptr++;
所以,此时ptr指向的是数组中的第二个元素7.
而对于printf()语句的执行,由于参数入栈是从右到左的,所以第一个如下的是(++ptr),所以,ptr指向了数组中第三个元素8,然后是ptr入栈,此时ptr已进行了++ptr运行了。
所以printf输出8, 8.
- 关于C语言中指针运算以及参数入栈顺序的面试题
- C语言中函数参数的入栈顺序
- C语言中函数参数的入栈顺序
- C语言中函数参数的入栈顺序
- C语言中函数参数的入栈顺序
- C语言中函数参数的入栈顺序
- C语言中函数参数入栈的顺序
- C语言中函数参数的入栈顺序
- C语言中函数参数的入栈顺序
- C语言中函数参数的入栈顺序
- C语言中函数参数的入栈顺序
- C语言中函数参数入栈的顺序
- C语言中函数参数入栈的顺序
- C语言中函数参数入栈的顺序
- C语言中函数参数的入栈顺序
- C语言中函数参数入栈的顺序
- C语言中函数参数入栈的顺序
- C语言中函数参数的入栈顺序 .
- 软件扩展性
- Goldbach's Conjecture
- 第六周上机任务(二)
- 单片机沉思录——再谈static
- 阅读程序(3)
- 关于C语言中指针运算以及参数入栈顺序的面试题
- C语言 unsigned 和 signed 类型相互转换深入理解
- 五个砝码问题,三种解法
- MySQL到NoSQL:数据的重思和查询方式的转换
- 6-1 找错
- 程序填空2
- error: #error "Never use <bits/byteswap.h> directly; include <byteswap.h> instead."解决
- 一个游戏程序员的学习资料
- 674 - Coin Change