- 博客(7)
- 资源 (4)
- 收藏
- 关注
原创 找错——死循环
代码:#include int main(void){ unsigned i; for( i=9 ; i >= 0 ; i--) { printf("%u/n", i); } return 0;}unsigned类型的数据永远都是>=0的,所以循环的条件一直成立,构成死循环。i=0时,i--后,i是unsigned类型数据中的最大值。
2010-04-26 11:07:00 490
原创 找错——函数返回局部指针
代码:char *test(const char s[]){ char tstr[50]={/0}; unsigned int i,k=0; for(i=0;i { if(s[i]!=) tstr[k++]=s[i]; } return tstr;} 错误:返回了一个局部地址。tstr是在函数中声明的一
2010-04-26 10:57:00 456
原创 变量——局部变量在函数退出后是否有效,为什么?
无效。函数运行过程中,其用到的局部变量保存在堆栈中。当函数退出后,函数运行期间使用的局部变量将全部“弹出”堆栈,继而失效。
2010-04-13 10:55:00 3249
原创 变量——全局变量和局部变量是否可以重名?你是否在这样做?
可以重名,在局部变量作用域内局部变量将“覆盖”全局变量。建议不要使用与全局变量重名的局部变量,这样容易引起混淆,出现错误不易调试。
2010-04-13 10:54:00 1189
原创 变量——不同类型的变量,你是否知道其作用域?
1. 具有外联接的全局变量:在所有函数外部声明的变量,且没有static修饰符,例如:/* a.c 文件 */int total = 0;此类变量具有文件作用域,在本文件中从定义开始处至文件结尾均可见。在本文件的开始至定义此变量处及其他文件中,可使用extern修饰符来引用该变量。例如:/* b.c文件 */extern int total;进行上述声明后,可在b
2010-04-13 10:47:00 656
原创 变量——全局变量,局部变量,常量分别保存在内存中的什么地方?
全局变量、静态局部变量保存在全局数据区,初始化的和未初始化的分别保存在一起; 普通局部变量保存在堆栈中; 常量分为普通常量(比如2,3.0,#define PI 3.14)和文字常量(比如“hello world”)。普通常量经编译后成为二进制程序代码的一部分;文字常量保存在文字常量区,这部分内存中的内容不允许修改。
2010-04-12 09:16:00 4143
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人