- 
            
            gdb调试:gdb ./main查看全部
 - 
            
            gdb调试 gdb -g main.c -o main查看全部
 - 
            
            !,,,,丶,厌倦 ,,在,厌倦。,在:,,,一,,在这个!,,,,,、,在查看全部
 - 
            
            (gdb) x/3d 内存起始地址 从起始地址开始以十进制显示3个值查看全部
 - 
            
            gcc -g file.c 编译生成可用gdb调试的课执行文件<br><br> (gdb) l(list) 显示源代码<br><br> (gdb) break num 在num行设置断点<br><br> (gdb) start 开始调试(默认断点在main函数第一行)<br><br> (gdb) p a 打印变量a的值<br> (gdb) r(running) 开始调试并运行到断点所在行<br><br> (gdb) n 向下执行一行代码<br><br> (gdb) s 进入函数<br> (gdb) bt 查看函数堆栈<br> (gdb) f 1 跳到函数栈为1的函数 (gdb) kill 终止正在调试的程序 (gdb) q 退出gdb查看全部
 - 
            
            源代码查看全部
 - 
            
            原代码查看全部
 - 
            
            因为gcc是智能分配地址的,同种类型的变量会放在相邻地址空间,所以会出现以下现象 程序代码: char str[]="hello"; char str2[10]; scanf("%s",str); printf("str=%s\n",str); printf("str2=%s\n",str2); 编译之后,输入: aaaaaaaaaaaaaaaaaaaaaaaaa 输出: str=aaaaaaaaaaaaaaaa str2=aaaaaaaaa str和str2会放在连续的地址空间中,str2没有输入的情况下也会输出str溢出的内容,但是str输出长度不等于定义的长度,这不知道是为什么?查看全部
 - 
            
            字符串是以'/000'结束的 堆、栈内存中的内容是以更改的,代码段内存中的内容不允许修改。 实例: char *str = "apple"; scanf("%s",str); 这是错误的,因为str指向的是代码段内存中的内容,该内容不能进行修改!!查看全部
 - 
            
            原本:<br> int a;<br> scanf("%d".&a);<br> scanf中的a前面是有取地址符的,代表把输入的数据放到该地址表示的内存空间中<br> 字符数组:<br> char str[10];<br> scanf("%s",str);<br> scanf中的str前不用加上取地址符,因为str本来表示的就是地址查看全部
 - 
            
            数组名称本身是一种指针常量,不可修改 int array[2]; int *p=array; array为常量指针,不可改变;p为变量指针,可以改变; 所以,array能做的事情,p也能做到,但反之则不行; PS:指针取值有两种方式,一种是*p,另一种是p[i] p[i]相当于以地址作为基点往下偏移i个变量地址 而赋值操作也可以由p+=3; *p=101;变成简单的p[3]=101;查看全部
 - 
            
            x/10d 起始地址:以4个字节为单位(因为是整型)往后取10个值 d-代表整型数字 实例 x/3d 0x7fffffffde14查看全部
 - 
            
            实例 虽然从来没用到过函数指针,不过说白了就是这样: int quadrate(int a); // main中 int a=3; int (*p)(int a); p = &quadrate; int s = (*p) (a); //最后就相当于p(a)查看全部
 - 
            
            1. int quadrate(int a);是一个函数 int (*pquadrate)(int a)=&quadrate;则是指向这个函数的指针! int s=(*pquadrate)(a)可以调用函数! 2.一个指针变量*q 不加*号:P q 取出自己地址中存储的值(一个地址)。查看全部
 - 
            
            栈是从栈顶下向下分配内存地址,先声明的内存地址大,后声明的小 静态变量、常量、全局变量保存地址都在数据段里查看全部
 
举报
0/150
	提交
		取消