关于c编程的一些很重要的问题
来源:互联网 发布:生产管理系统 源码 编辑:程序博客网 时间:2024/04/30 07:57
如果编码是utf8,那么printf("%-15.10s","hello,world");会输出“hello,worl”这里是英文标点
中文标点的话,printf("%-15.10s","hello,world");会输出"hello,wo",这里的,占了三个字符位,起初觉得很奇 怪,后来我朋友点醒我这是utf8,所以不符合ANSI C里那个中文占两字符位的规定,我这里用的编译器是linux下的gcc 4.3.2有兴趣的也可以去试试
下面这个函数在有些系统里会产生不正确的值
int factorial(int n)
{
if(n==0||n==1)return 1;
else return(n*factorial(--n));
}
这个函数产生的值依赖于系统,在有的系统里,递归函数会先计算n,再计算factorial(--n),目前在gcc和vc里都是先算 factorial(--n),再算n,于是导致n=3时输出2,n=4时输出6,该程序计算阶乘,所以要分析好这些细节,总体来说,这个方法是不对的, 要尽可能考虑到编译器的问题
如果要输出十进制,八进制,十六进制的话,只要printf("%d,%o,%x",19,19,19);就可以了,但是输出需要前缀的话,需要用printf("%#x %#o",19,19);来输出
中文标点的话,printf("%-15.10s","hello,world");会输出"hello,wo",这里的,占了三个字符位,起初觉得很奇 怪,后来我朋友点醒我这是utf8,所以不符合ANSI C里那个中文占两字符位的规定,我这里用的编译器是linux下的gcc 4.3.2有兴趣的也可以去试试
下面这个函数在有些系统里会产生不正确的值
int factorial(int n)
{
if(n==0||n==1)return 1;
else return(n*factorial(--n));
}
这个函数产生的值依赖于系统,在有的系统里,递归函数会先计算n,再计算factorial(--n),目前在gcc和vc里都是先算 factorial(--n),再算n,于是导致n=3时输出2,n=4时输出6,该程序计算阶乘,所以要分析好这些细节,总体来说,这个方法是不对的, 要尽可能考虑到编译器的问题
如果要输出十进制,八进制,十六进制的话,只要printf("%d,%o,%x",19,19,19);就可以了,但是输出需要前缀的话,需要用printf("%#x %#o",19,19);来输出
- 关于c编程的一些很重要的问题
- 关于嵌入式C&&C++的一些编程问题(一)
- 关于嵌入式C&&C++的一些编程问题(二)
- 关于嵌入式C&&C++的一些编程问题(三)
- 关于嵌入式C&&C++的一些编程问题(四)
- 关于julia的路径问题,往往很重要!
- C/C++ 一些被忽视却又很重要的知识点
- 一个很重要的问题。。
- 关于socket编程的一些问题
- 关于一些编程问题的记录总结
- C/C++编程的一些问题
- 关于c语言的一些问题
- 关于C::t的一些问题
- C/C++关于数据类型的一些问题
- 一个关于C语言编程的问题
- 关于BF53X的c编程数据类型问题
- 关于数组问题的一些总结(c/c++)
- 编程的一些问题
- Java批量下载zip文件
- IBM Rational RequisitePro
- ^^
- 反省——“我的程序设计语言(非编程)学习”
- 有点意思
- 关于c编程的一些很重要的问题
- MKLML
- 简单密码锁
- 使用c#搭建仓储管理信息系统出现的错误
- 鲜花慢慢开
- 安装oracle9i---密码设置与是否成功测试
- 未来五年程序员应当具备的十项技能
- 魅影匆匆
- 美好的开始