C语言基础
FarEast8612
这个作者很懒,什么都没留下…
展开
-
堆和栈的区别(转过无数次的文章)
栈: 在函数调用时,第一个进栈的是主函数中后的下一条指令(函数调用语句的下一条可执行语句)的地址,然后是函数的各个参数,在大多数的C编译器中,参数是由右往左入栈 的,然后是函数中的局部变量。注意静态变量是不入栈的。 “关于调用约定,Windows环境下先参数入栈,后返回地转载 2011-10-13 14:45:53 · 421 阅读 · 0 评论 -
C语言switch语句详解
#include "stdio.h"void main(){int a;scanf("%d",&a);switch (a){case 1: printf("A"); case 2: printf("B"); case 3: printf("C"原创 2011-10-13 14:22:27 · 8122 阅读 · 0 评论 -
atoi的实现
int __atoi(const char *nptr){ int cur; int sign; int total = 0; while( isspace((int)(uns原创 2011-10-13 20:18:48 · 483 阅读 · 0 评论 -
彻底了解指针数组,数组指针,以及函数指针,以及堆中的分配规则
一 :关于指针和堆的内存分配 先来介绍一下指针: 指针一种类型,理论上来说它包含其他变量的地址,因此有的书上也叫它:地址变量。既然指针是一个类型,是类型就有大小,在达内的服务器上或者普通的PC机上,都是4个字节大小,里边只是存储了一个变量的地址而已。不管什么类型的指针,cha转载 2011-10-13 21:10:23 · 382 阅读 · 0 评论 -
memcpy and memmove
12.25 memcpy() 和 memmove() 有什么区别? 如果源和目的参数有重叠, memmove() 提供有保证的行为。而 memcpy() 则不能提供这样的保证, 因此可以实现得更加有效率。如果有疑问, 最好使用 memmove()。参考资料: [K&R2, Sec. B3 p. 250]; [ISO, Sec. 7.11.2.1, Sec. 7.11.2.2]; [转载 2011-10-25 11:28:28 · 601 阅读 · 0 评论 -
字符串函数实现---lib\string.c
/* * linux/lib/string.c * * Copyright (C) 1991, 1992 Linus Torvalds *//* * stupid library routines.. The optimized versions should generally be found * as inline code in * * These are bu原创 2011-11-16 21:26:33 · 960 阅读 · 0 评论 -
一道内存对齐问题和由此引出的CPU字节序问题
一大早晨的群里就很活跃,好现象啊 一位“同学”发了一道题,问题是b输出什么。 struct sm { short a; char b,c; }; int a=0x12345678; int b=(int)(*(struct sm*)&a).c; cout转载 2011-10-31 18:37:59 · 580 阅读 · 0 评论