C语言基础
小刘同学_iOS
这个作者很懒,什么都没留下…
展开
-
堆和栈的区别(转过无数次的文章)
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两转载 2014-11-26 13:14:07 · 551 阅读 · 0 评论 -
const、typedef 、 define总结
const关键字const=read only,修饰的为只读变量而不是常量。const修饰的变量不能用作数组的维数也不能放在switch语句的case:之后。主要作用有:1.通过把不希望被修改的变量或参数用const来修饰,编译器会保护这些变量不被修改增强系统的可靠性;2.增强代码的可读性[html] view plaincopyprint?原创 2014-10-17 17:58:10 · 817 阅读 · 0 评论 -
指针数组、数组指针、函数指针、指针函数总结
指针数组 && 数组指针char *a[5]; //定义一个指针数组, 数组的元素都是char *指针类型。初始化也可以在里面存放字符或字符串。a的类型是char *[5]//若char *a[5]={"red","white","blue","dark","green"};//a在这里的类型是char *[],实质上是一个二级指针。也就是说a所代表的那块内存里面存放着的是数组原创 2014-11-10 18:28:14 · 1585 阅读 · 0 评论 -
C语言基础知识----联合 && 枚举 && 结构体
结构体struct 结构体标签(可选){ 类型1 标识符1; 类型2 标识符2; .......}(变量定义可选);联合union 可选的标签{ 类型1 标识符1; 类型2 标识符2; ........}可选的变量定义;联合与结构体相似,但内存布局上存在关键性的区别。结构体中每个成原创 2014-08-30 10:02:44 · 934 阅读 · 0 评论 -
6个变态的C语言Hello World程序——更好的理解C
下面这个程序片段主要完成以下两件事情: 1)完成输出Hello World。 2)混乱C语言代码。 #define _________ } #define ________ putchar #define _______ main #define _(a) ________(a); #define ______ _原创 2014-08-17 10:53:26 · 2176 阅读 · 0 评论 -
1987年国际C语言混乱代码大赛获奖的一行代码
macb() ? lpcbyu(&gbcq/_\021%ocq\012\0_=w(gbcq)/_dak._=}_ugb_[0q60)s+ 这是CoolShell博主之前做了一个很有意思的在线puzzle,仿照一些前端过关的游戏,做了几个和程序员有关的迷题,一个通关游戏,这个事测试的第二题。并为通关的前十名送上《Unix环境高级编程(第三版)》(感原创 2014-08-16 12:13:00 · 4749 阅读 · 0 评论 -
6个变态的C语言Hello World程序——更好的理解C(4、5、6)
hello4.c[cpp] view plaincopyprint?main(){int i,n[]={(((1 1)>1)))+((1 1>1)))+ (1 >1))),(((1 >1)))- ((1 >1)))),(((1 >1 )))-((1>1)))),(((1 1>1)))-(1>1)原创 2014-08-22 15:56:15 · 1819 阅读 · 0 评论 -
Brainfuck——让你脑子凌乱的程序语言
Brainfuck,是一种极小化的计算机语言,它是由Urban Müller在1993年创建的。由于fuck在英语中是脏话,这种语言有时被称为brainf*ck或brainf***,甚至被简称为BF。 这种语言由八种运算符构成,就象它的名字所暗示的,brainfuck程序很难读懂。虽然brainfuck的计算方式如此与众不同,但它确实能够正确运行。这种语言基于一个简单的机器模原创 2014-08-15 15:22:03 · 6665 阅读 · 1 评论 -
6个变态的C语言Hello World程序——更好的理解C(2、3)
接上一篇文章,6个变态的C语言Hello World程序——更好的理解C ,这篇文章给大家带来变态的Hello World程序2、3hello2.c #include main(){ int x=0,y[14],*z=&y;*(z++)=0x48;*(z++)=y[x++]+0x1D; *(z++)=y[x++]+0x07;*(z++)=y[x++]+0原创 2014-08-19 18:26:25 · 1264 阅读 · 0 评论