C编程
si_ma_tong_ming
谁把谁的明媚尽收眼底,
谁把谁的难过感同身受。。。
展开
-
全排列(递归和字典序)
递归法:#include#define maxn 100int d[maxn];void swap(int *a, int *b) //交换{ int t; t = *a; *a = *b; *b = t;}void fun(int k, int n){ if(k >= n) { for(int i = 0; i<n; i++) printf("%d"原创 2015-12-16 04:03:39 · 3186 阅读 · 1 评论 -
a[255]的值
int main(){ char a[1000]; int i; for(i=0; i<1000; i++) { a[i] = -1-i; } printf("%d",strlen(a)); return 0;}求输出结果?? 结果为255char默认为signed(-128~127),-1的补码为0xff,-12原创 2017-02-09 02:42:43 · 438 阅读 · 0 评论 -
确认当前系统的存储模式(大端模式,小端模式)
存储模式: 大端模式(Big_endian):字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中。 小端模式(Little_endian):字数据的高字节存储在高地址中,而字数据的低字节则存放在低地址中void CheckSystem( ){ union check { int i; char ch; } c;原创 2017-02-10 01:09:45 · 396 阅读 · 0 评论 -
内存对齐
为什么要内存对齐 为了提高程序的性能,数据结构(尤其是栈)应该尽可能的在自然边界上对齐。因为访问未对齐的内存,处理器需要作两次内存访问,但是,对齐的内存访问只需要一次访问。内存对齐尽管会牺牲一些空间,但是可以提高程序的性能。 比如32位机,字长为32位即4字节。如果一个字操作数跨越了4字节边界那么就需要两次总线周期来访问内存。对齐规则 1.每个成员分别按自己的方式对齐,并能最小化长度。 2.原创 2017-07-18 17:43:50 · 288 阅读 · 0 评论