编程语言
文章平均质量分 63
8UG
代码改变世界
展开
-
自增自减运算符
自增自减运算符的前置与后置:下面我们通过几个程序来看自增(自减也是一样)运算符:程序1:#include int main(){ int i1=5,i2=5,j1,j2; j1=++i1; j2=i2++; printf("j1=%d\nj2=%d\n",j1,j2); return 0;}程序运行结果::自增运算符前置是先增后赋值,自增运算符后置是先原创 2015-04-16 00:30:25 · 1003 阅读 · 0 评论 -
C基础之数组
首先我们介绍多维数组对于二维数组a[4][6];由于数组名代表数组的起始地址,所以a(第一层)和第一个元素a[0][0]地址的数字是相同的,但是意义却是不同的。 对于该数组我们可以理解为:a的一维数组(第一层),它有四个元素a[0]、a[1]、a[2]、a[3](第二层),而每个元素又含有6个元素a[0] [0],a[0][1],a[0][2],a[0][3],a[0][4],a[0][5原创 2015-03-20 21:53:47 · 793 阅读 · 4 评论 -
n的k次方,使用递归的两种实现方法
//第一种方法,有点挫int n_k(int n,int k){ static int i=0,sum=1;//静态变量,一定要注意! sum*=n; i++; if(k>0) { if(i!=k) return n_k(n,k); } else return 1;}第二种方法,精int pow(int n,int k){ if原创 2015-03-15 11:53:54 · 1268 阅读 · 0 评论 -
c语言的内存对齐
内存对齐的问题主要存在于理解struct和union等复合结构在内存中的分布为什么要求内存对齐?对齐原因大部分的参考资料都是如是说的:1、平台原因(移植原因):不是所有的硬件平台都能访问任意地址上的任意数据的;某些硬件平台只能在某些地址处取某些特定类型的数据,否则抛出硬件异常。2、性能原因:数据结构(尤其是栈)应该尽可能地在自然边界上对齐。原因在于,为了访问未对齐的内存,处原创 2015-03-25 15:59:14 · 555 阅读 · 0 评论 -
字符数组初始化
字符数组的初始化字符数组的初始化与数值型数组初始化没有本质区别。但它除了可以逐个给数组元素赋予字符外,也可以直接用字符串对其初始化。(1)用字符常量逐个初始化数组。例如:char a[8]={'i','l','o','v','e','y','o','u'};用逐个初始化的方法与数值型数组初始化本质上是一样的,同样也可以进行完全赋初值及不完全赋初值,但是不完全赋值时没有赋值的元素被赋原创 2015-03-25 15:53:12 · 4065 阅读 · 0 评论 -
你也可以写游戏——简单的数字游戏
#include #include #include int main(){ float delay;//用来表示数字在屏幕上显示的时间 int number;//用户需要输入刚才屏幕出现的数字 char start=0; time_t seed=0; int i=0,sum=0,n=0; int over; int class=0;//玩家等级 int count =原创 2015-04-22 14:29:47 · 972 阅读 · 0 评论 -
C基础之柔性数组
柔性数组 :结构中允许最后一个成员是大小未知的数组结构中的柔性数组前面必须至少一个其他成员,柔性数组成员允许结构中包含一个大小可变的数组。sizeof返回的这种结构大小不包括柔性数组的内存。包含柔数组成员的结构用malloc函数进行内存的动态分配,且分配的内存应该大于结构的大小以适应柔性数组的预期大小例如: struct stu { int i;翻译 2015-03-20 19:21:37 · 564 阅读 · 0 评论