-
使用指针传参的时候要加‘&’(取地址符)查看全部
-
Linux C工作方式查看全部
-
若是使用了指针。 a 表示所占用的内存地址值 *a 表示指针内存中保存的具体数值查看全部
-
使用gdb调试步骤: 1、使用带-g选项的gcc命令编译源文件:gcc -g main.c -o main.out 2、使用gdb工具调试:gdb ./main2.out 3、调试过程中:(gdb): l 列出当前项目源代码(list)→再按l或直接按回车:继续执行上一命令 break 12 将断点打在第12行 start 单步调试 p a 显示当前a的值(print)(当前行的命令未完全执行) n 进入下一行(next) s 进入当前函数内部(step) bt 查看函数堆栈(在上方的函数先执行) f 1 切换到1号栈 q 退出调试查看全部
-
内存分布查看全部
-
内存管理前48位给程序猿查看全部
-
gcc -g main.c -o main.out //加-g生成的main.out才可以用gdb进行调试 gdb ./main.out //调试 gdb调试命令 l(list) 列出代码 start 开始调试 n 单步走 s 进入函数 p 变量名 输出变量的值 bt 查看栈标号 f 栈标号 切换栈 q 退出gdb 回车 重复执行上一次的命令 在gdb下 x/nd 0x7fffffffde14 //从指定地址开始,显示内存中的数据 n:指定显示的数据个数 d:以十进制形式显示 cb:逐个字符打印 0x7fffffffde14为起始地址 gcc加有优化机制,会将相同类型的变量存储在一起 系统内核 //高地址 栈 自由区 堆 数据段 全局变量、静态变量 代码段 //低地址 常量,程序编译运行以后,被加载到内存,此时代码段内的值不可以修改查看全部
-
栈内存、堆内存查看全部
-
void change(*a,*b) { int t; t=*a; //此时a表示地址,*表示到哪去找什么,*到a处取 *a=*b; // *b=t;}查看全部
-
*表示到地址去找查看全部
-
晕~听不太明白查看全部
-
听得不是很明白~还要再重复听查看全部
-
array本质上是指针常量,地址不可更改查看全部
-
1个16进制的数字,就可以表示4位二进制数字查看全部
-
字符串指针指向的字符串存放在代码段,而字符数组的字符串存放在栈中查看全部
举报
0/150
提交
取消