版本:gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3)
安装gdb工具:apt-get install gdb
练习:设函数void change(int,int)将交换两形参数值,如有两整型变量int a=10;int b=15,则执行change(a,b);之后,a,b值分别为( )
*******
answer:10 15
解析:只是传值,只是change的局部变量,是实参的备份。
解决:加个指针,取地址符,实现交换功能。
安装gdb工具:apt-get install gdb
练习:设函数void change(int,int)将交换两形参数值,如有两整型变量int a=10;int b=15,则执行change(a,b);之后,a,b值分别为( )
*******
answer:10 15
解析:只是传值,只是change的局部变量,是实参的备份。
解决:加个指针,取地址符,实现交换功能。
2016-09-19
64位系统下,指针占8个字节,32位 4个字节。
栈、先声明的地址大,后声明的地址小,与代码段数据段相反。
编译器优化代码,把声明时不在一起的同一类型变量,放到一起(某种程度上修改了源码)
如 声明 int a ; float b ; int c; 编译后变量a的地址和c的地址是连在一起的.
栈、先声明的地址大,后声明的地址小,与代码段数据段相反。
编译器优化代码,把声明时不在一起的同一类型变量,放到一起(某种程度上修改了源码)
如 声明 int a ; float b ; int c; 编译后变量a的地址和c的地址是连在一起的.
2016-09-17