- 博客(16)
- 收藏
- 关注
原创 C语言:逆序输出一个整数
先给一个整数需要逆序输出它,比如123输出值就应该是321,这道题原本思路如下 1.先确定它的位数 2.再根据它的位数进行判断需要1后面跟着多少个0。 3.然后再一位一位输出 其实没必要这么麻烦,不需要判断其位数,直接输出即可,代码如下void Print(int num){ int tmp = 0; while (num !=...
2019-08-02 21:31:35
11133
2
原创 gdb调试常用的调试命令
1.l 显示代码2.b+行号 加断点3.info break 显示断点信息4.delete 删除断点5.r 启动程序6.n 单步执行,就是下一步的意思7.c 继续执行8.s 进入函数9.finish 跳出函数10.p 打印11.q 退出调试12.bt 显示函数调用的栈信息13.set follow-fork-mode child...
2019-08-02 21:07:37
165
原创 Linux上gcc和g++的区别
gcc是可以编译.c和.cpp的源文件,如果你的文件名的后缀是.c那么gcc是按照c语言的语法来编译的,如果你的文件后缀是.cpp,那么就会按照c++的语法编译,但是用gcc来编译.cpp文件,你直接编译时编译不过的,因为gcc它不会去链接c++的库,也就是说,有的东西这里根本找不到,所以用gcc编译.cpp文件时需要手动链接c++的库的,要在后面加-lstdc++,这样才能链接到c++的...
2019-08-02 20:58:55
238
原创 比较有趣的题3
typedef struct student{ char s_id[10]; char s_name[10]; char sex; int age; char addr[20]; double score; int num;}typedef; 这道题要问你都是这个score这个成员在这个结构体的第几个字节,其实也就是问这个score之前这个机构体有多少个字节。...
2019-08-02 20:33:22
331
原创 比较有趣的题2
int i = 0;printf("%d,%d\n", i++, i++);return 0;就上面的题而言,在c语言下你觉得答案是多少? 反正我第一时间脑海中反应过来的是0,1,你看先是给i++先赋值后++就先输出0,然后i变为了1然后后面又是个i++先赋值后++,然后输出个1,这个顺序应该是对的吧,然而事情往往并没有这么简单,答案如下。 我是万万没有想到...
2019-08-01 21:29:02
95
原创 Linux下对于文件操作基本命令
一. 文件系统 这是Linux系统的文件存储模式,倒状树的模式,根目录下面存储多个目录文件,目录文件下面又有许多小文件这样排下去。 在Linux中,一切接文件,就是把所有存储在Linux上的东西都可以看作文件,都当文件来用。 文件类型的确定字符 1. - 普通文件 2. d 目录文件 3. p ...
2019-08-01 20:51:16
150
原创 static关键字的作用总结
1. 静态变量 1. 全局静态变量 在全局变量之前加一个关键字static,那么这个变量就变为了全局静态变量,存储的区域变为了静态存储区,且这个变量会自动初始化为0,这个变量也就可以在本文件中能够被看见,其他文件是看不见这个变量的。 2. 局部静态变量 在一个局部变量前加一个static,那这个局部变量就变为了局部静态变量,存储的...
2019-08-01 19:55:20
372
原创 C语言对文件的操作
1.打开文件FILE *fp;fp = open(const char *filename,char *mod)注意这里的filename需要绝对路径且分隔符用\\表示如:C:\\Users\\...\\Desktop\\filename(名字是要加后缀的呦)使用文件的方式(mod) 文件使用方式 含义 如果文件不存在 "r"(只读) 打开一个已存在文件,读...
2019-07-31 22:11:34
231
原创 比较有趣的题1
int arr[4] = { 1, 2, 3, 4 };int i = *(int *)((int)arr + 1);printf("%x\n",i); 就上面的代码而言输出值你认为是多少? 答案如下: 为什么会是这个数字,我当时也很奇怪后面请教老师以及参考资料才把这道题搞明白,我先画个图先了解一下题意 不知道这个图看不看的懂,因为是int类型的数组所以一个数...
2019-07-29 22:12:53
122
原创 静态全局变量与普通全局变量的相同与不同
全局变量是定义在函数外部的,局部变量是定义在函数内部。全局变量与局部变量的生命周期是相同的都是在程序运行就创建,程序退出才销毁。全局变量与局部变量的作用域是相同的都是变量定义开始到文件结束。全局变量与局部变量的默认值是相同的都是0。全局变量与局部变量的内存区域相同,都是内存区域全局变量区。全局变量与局部变量的链接属性不同,全局变量连接属性是外部的,局部变量的连接属性是内部的。...
2018-06-22 16:45:00
1162
原创 调试
调试是用来去分析自己写的代码为什么出错,一步步去看数据的变化,调试所需要的图标如下 这个图标是让电脑迅速运行一遍程序,如果没有断点,就直接运行完(前提是程序没有写错出错)。 这个图标是进入到函数中去,你前面运行一遍完,在断点处停下,点击这个图标,进入到断点处的函数中进行监视。一条语句一条语句的去看也叫逐语句。 这个图标是迅速通过一个函数,有时候我们不需要一个语...
2018-06-03 12:58:27
213
原创 一个函数影响另一个函数存在的问题
一个函数影响另一个函数存在的问题 一,没有传指针,传指针是将两个函数联系的重要条件之一,只有传指针才能将函数联系起来。 二,没有解引用,解引用是将函数里面的数据,进行改变,如果只是传了指针,而没有解引用,那么这个函数相当于没有运行,因为传了指针,只是改变了指针的方向,而没有改变数据,所以一定要解引用。 三,存在野指针(悬挂指针),什么是野指针?野指针是没有访问权限的指针(地址)...
2018-05-26 17:29:50
581
原创 数组越界(栈)
数组越界问题和栈是分不开的,如: 现在给一个变量i那么这个i就会出现在最下面的那个空的格子里面,本来arr[10]中只能有十个数字但是如果多写了一个数字那么就会出现越界的情况,将会把所给的i给顶掉,那么就会发生一系列无法预测的事情,所以,对于数组来说,不能多给,但能少给,所以处理数组时一定要想清楚这组数组该给几个格子,千万不要发生越界现象。...
2018-05-26 16:05:54
517
原创 进制判断
关于进制的判断,一般的是选择题,所以如果给的数字好算,就一个个往里代,如果给的算不了。如567*456=150216A.9 B.10 C.12 D.18这样的该如何去选择?最好的方法是用两个乘数的个位相乘让对所给的选项取余,如果余数不是6的就可以排除掉,可是这个题只能排除掉B选项,其他的都得6。然后想进一步精确那么就将式子展开 合并同类项得 20n^4+49n^3+88n^2+71n+42...
2018-05-26 15:42:06
902
原创 整型数字的处理
如何去判断一个数字是几位数字?想要去判断出来就去用所给数字去除以10的次方,因为不管几位数,他的最高位不可能为0,所以只要算到这个数除以10的次方不为0,那么就可以判断出它是几位数,如123000除以10000000为0,除以1000000为0,除以100000为1,所以我可以判断它与100000是一样的位数,那么就是六位数。 想要获得它的最大位上的数那么就除以10的次方,如123000...
2018-05-23 23:14:48
374
原创 浮点数精度问题
关于精度问题,基本上都是再说浮点数,因为浮点数无法很准确的表示出来,也就是说表示的不是很准确,表示出来的数字总会比你想表现的数字小那么一点点或者大那么一点点,这种原因的产生是因为浮点数的储存问题。浮点数的储存,拿float类型来说,储存12.5,转为二进制就是1100.1,在计算机中储存要转为科学计数法,于是就成为1.1001*2^3(这是二进制所以是2的几次方)现在float类型一共有4个字...
2018-05-07 17:39:36
400
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人