编程中经常错的地方(如果你的程序报错,却找不到,来这里看看)
来源:互联网 发布:站长交易第一平台源码 编辑:程序博客网 时间:2024/04/18 10:49
1, struct 结构体和union联合体,一定要加‘;’
例:
struct node{ int num};
,2, 如果使用if和while时,注意:
if(a=4);{ printf("大家好\n");}while(a=4);{ printf("大家好\n");}
上面两个语法没问题,但逻辑有问题,if 和while使用时,不要习惯性地加‘;’
注意区分‘=’赋值和‘==’横等的区别
3,有时候可能会出现莫名其秒的段错误,这也是很头疼的;
可能性1:越界:你定义了一个变量char a[10],只有10个字节,如果你给他赋值10个字节以上的内容,系统就会报段错误
可能性2:野指针:你的指针没有初始化,也没明确指向一段内存,那系统会给他一个随机的地址。一旦你使用他,系统就会报错
因为这段地址可能是系统不允许访问的地址
可能性3:链表中:定义一个结构体指针,没有分配空间,那他还是个地址,
例:
struct node *p=NULL;x = p->num ; //这里就会报错,因为你没分配空间,*p只是一个结构体指针,是个地址,没有内存空间
4,注意while()和for(; ;)里面的控制是,满足条件才循环
n =7 ; for(int i=0;i>10;i++)while(n<0) {{ n--;} }
不要带自己感觉地去写,认为满足条件退出
5,变量在定义时,注意初始化。全局变量,还好,系统会默认为0或NULL。若是局部变量时,不给他赋值,系统自动给一个垃圾值。
6,调用函数时,不要返回局部变量的地址,因为局部变量的资源,在函数调用后,就会释放,所以得不到你想要的结果。
例:
char * reserver_string(){ char str[] = "hello!"; return str;}int main(){ reserver_string(); return 0;}
上可以程序,如果你编译,就会出现警告。如果你用一个char *temp;接收返回值,并打印*temp指向的内存,那你得到的将不会是“hello!”
7,文件读写 :文件读写时,*fp会移动,所以要明白指针目前指向
- 编程中经常错的地方(如果你的程序报错,却找不到,来这里看看)
- 如果你想让别人给你的代码查错,先来这里看看
- 如果你想让别人给你的代码查错,先来这里看看
- 程序报错找不到原因高手进来看看
- 不理解会计科目的来这里看看!
- 初学的朋友经常遇到的问题!可以看看这里
- 在程序中经常容易出错的地方
- 页面中使用已经引入的jquery插件,结果却提示JS报错找不到函数【问题解决】
- 安卓在xml文件(布局文件)中做一些细微改变却运行程序报错的原因
- 安卓在xml文件(布局文件)中做一些细微改变却运行程序报错的原因
- 想成功的年轻人看过来!如果你是年轻人,请你认真的看看以下文字!
- rvm use 经常报错,找不到命令
- 没有点击监听按钮,但是程序却执行了监听下的代码???找不到原因?这里看。
- hihoCoder:1039字符串消除(当你找不到自己错在哪里了,可以来我这里看一看)
- 大家好,我是个程序猿,初来乍到贵宝地,由于我是新人,性格腼腆,不太会说话,如果有什么得罪的地方,你特么来打我啊!来啊!!
- MFC中经常出错的地方
- java中几个经常出现的报错
- 编程中经常遇到的调试没问题,运行却出错的一种原因
- 杀毒软件引起的WinCE编译出错问题
- MySql 存储过程
- (40)面向对象的三大特性继承性(41)面向对象中常用的关键字和魔术方法
- 小公司工作一月小感
- 如何使用Photon引擎开发MMO大型多人在线游戏 简易版教程(by 白杨学士)
- 编程中经常错的地方(如果你的程序报错,却找不到,来这里看看)
- 杭电ACM 2016 数据的交换输出
- SRM 499 250pt
- MFC radio button 的使用方法
- undo学习系列之澄清一个被误解的概念
- vi笔记
- 《C++标准程序库》第四章摘录与笔记
- 黑马程序员——反射深入理解
- Eclipse 使用dropins的插件安装方式【转】