2013年12月9日
摘要: 原题为去掉count后面所带的的数字,不同的颜色代表同一变量的不同作用域#includeint count1= 3;int main(){ int i, sum, count2 = 2; //作用域为main里面 for(i = 0, sum = 0; i < count2; i += 2,count2++) { static int count3 = 4; //作用域为for循环里面除去if这一部分 count3++; if(i % 2 == 0) { extern int count1; //作用域if里面 count1++; ... 阅读全文
posted @ 2013-12-09 20:54 思过崖 阅读(161) 评论(0) 推荐(0) 编辑
  2013年12月8日
摘要: 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,动态局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。3、数据域(或静态区)(static)—,全局变量和静态变量的存储是放在一块的;初始化的全局变量和静态变量在一块区域.data段, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域.bss段。 - 程序结束后有系统释放4、文字常量区 —常量字符串就是放在这里的。.. 阅读全文
posted @ 2013-12-08 20:48 思过崖 阅读(293) 评论(1) 推荐(0) 编辑
摘要: 一、宏定义1 宏是常用的预处理功能之一,是在编译之前进行宏替换,即将宏名替换成所定义的宏体。2 优点:可以使代码更简单,更容易,避免大量使用。3 宏定义定义在函数外面;格式:#define PI 3.14PI为宏的文件内容在编译前将PI的内容替换成3.144 宏与全局变量的区别宏相当于字符串的替换操作,内存中不存在全局变量在内存中是存在的。相同点:通常定义一个全局变量加上const修饰符,全局变量的值是不可以修改的。5 宏函数#define MianJi(r) PI*r*r宏函数只是文本,只是相当于做了内容替换的操作,注意参数是没有数据类型6 在声明数组时也可以使用宏#define SIZE 阅读全文
posted @ 2013-12-08 19:20 思过崖 阅读(518) 评论(0) 推荐(0) 编辑
摘要: #includestruct Node{ char a; //0 short b;//2,3 char c;//4, int d;//8,9,10,11} name;int main(){ char Array[] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}; struct Node *p = (struct Node*)(void*)Array; printf("%#x, %#x, %#x, %#x", (int)(p->a), (int)(p->b), (int)(p->c),(int) 阅读全文
posted @ 2013-12-08 17:29 思过崖 阅读(556) 评论(1) 推荐(0) 编辑
摘要: 解析:1 x, y, z被定义成全局变量,但是在调用函数void p(int *x, int y)时,传递过来的实参存在栈空间里,相当与从原来实参那里复制一份,在函数调用结束时要释放这些参数,所以不会改变原来的实参,这就是调用函数时参数的传递是单向的。2 由于z不是通过函数调用传递过来的参数,所以对z的操作就是对全局变量的操作,可以改变z的值。3 传递过来的指针也是一个参数,函数调用结束时也要被释放掉,但是释放的只是指针本身,在被调用的函数运行时指针参数改变的是指针所指向的变量本身,所以通过指针的传递可以让被调函数改变主调函数里面的的变量。 阅读全文
posted @ 2013-12-08 16:19 思过崖 阅读(721) 评论(0) 推荐(0) 编辑
  2013年12月6日
摘要: strcpy和strncpy用法和区别1. strcpy函数:顾名思义字符串复制函数:原型:extern char *strcpy(char *dest,char *src); 功能:把从src地址开始且含有NULL结束符的字符串赋值到以dest开始的地址空间,返回dest(地址中存储的为复制后的新值)。要求:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 一般函数原型实现方式: char * strcpy(char * strDest,const char * strSrc) { char * strDestCopy=strDest; ... 阅读全文
posted @ 2013-12-06 19:53 思过崖 阅读(550) 评论(0) 推荐(0) 编辑