c语言
文章平均质量分 74
yal49
这个作者很懒,什么都没留下…
展开
-
C语言实现 不允许创建临时变量,交换两个数的内容
#include "stdio.h"void main(){ int a=1,b=2; a=a^b; b=a^b; a=a^b; printf("a=%d\n",a); printf("b=%d\n",b);}原创 2016-04-05 22:46:32 · 286 阅读 · 0 评论 -
C语言实现 求10 个整数中最大值
#include "stdio.h"void main(){ int num[10]; int max,i,j; for(i=0;i { printf("请输入第%d个数: ",i+1); scanf("%d",&num[i]); } max=num[0]; for(j=1;j { if(num[j]>max) ma原创 2016-04-05 22:46:35 · 664 阅读 · 0 评论 -
打印1到最大的n位数 题目:输入数字n,按顺序打印出从1最大的n位十进制数。
面试题:打印1到最大的n位数题目:输入数字n,按顺序打印出从1最大的n位十进制数。比如输入3,则打印出1、2、3一直到最大的3位数即999。跳进面试官陷阱这个题目看起来很简单。我们看到这个问题之后,最容易想到的办法是先求出最大的n位数,然后用一个循环从1开始逐个打印。解决这个问题需要表达一个大数。最常用也是最容易的方法是用字符串或者数组表达大数。接下来我们用字符串来解决大数问题。用字符串表示数字的原创 2016-04-05 22:46:41 · 1106 阅读 · 0 评论 -
内存字节对齐
上面是你随便 google一下,人家就可以跟你解释的,一大堆的道理,我们没怎么多时间,讨论为何要对齐.直入主题,怎么判断内存对齐规则,sizeof的结果怎么来的,请牢记以下3条原则:(在没有#pragma pack宏的情况下,务必看完最后一行)1:数据成员对齐规则:结构(struct)(或联合(union))的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员存储的起始位置要原创 2016-08-16 16:12:08 · 349 阅读 · 0 评论 -
详解栈区、堆区、全局区、文字常量区、程序代码区
一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—,全局变转载 2016-08-08 17:06:25 · 19235 阅读 · 4 评论 -
const实现机制及与#define的区别
const与#define的区别(1) 编译器处理方式不同 define宏是在预处理阶段展开。 const常量是编译运行阶段使用。(2) 类型和安全检查不同 define宏没有类型,不做任何类型检查,仅仅是展开。 const常量有具体的类型,在编译阶段会执行类型检查。(3) 存储方式不同 define宏仅仅是展开,有多少地方使用,就展开多少次,不会分配内存转载 2016-08-08 17:21:55 · 2164 阅读 · 2 评论 -
read( )函数注意事项与不足
今天在练习使用dup文件描述符重定向时,从标准输入流读取数据时同时练习了read()函数和fgets()函数,因为以前没有过多使用过read()函数,所以出现了一想不到的错误,刚开始调了半天才发现是read()函数的错误。为了防止以后有不熟悉read()函数的同学在使用过程中再出错,所以今天我们来解析一下read()函数。如有不足的地方请大家指出。先说出结果吧:个人觉得循环中最好不要用read原创 2016-08-13 00:38:35 · 8202 阅读 · 1 评论