当前位置: 首页 > news >正文

山西做网站怎么样做电影网站犯法吗

山西做网站怎么样,做电影网站犯法吗,网站建设及维护推广合同,网页设计与制作教程第三版课后答案看过了经典的KR C#xff0c;又看了这本Pointers on C#xff0c;温习了C语言的基本语法。 在重温过程中#xff0c;感觉需要重点把握的知识是指针、结构和动态内存分配。 这对今后的算法和操作系统方面的研究学习很有帮助。 3.2.3 声明指针int* b, c, d;本以为这条语句… 看过了经典的KR C又看了这本Pointers on C温习了C语言的基本语法。 在重温过程中感觉需要重点把握的知识是指针、结构和动态内存分配。 这对今后的算法和操作系统方面的研究学习很有帮助。 3.2.3 声明指针 int* b, c, d; 本以为这条语句把三个变量声明为整型的指针但事实并非如此。 星号*只对b有用其余两个变量只是普通的整型。正确语句int *b, *c, *d; 3.3 typedef 允许为各种数据类型定义新名字。 #define无法正确地处理指针类型如下 #define d_ptr_to_char char * d_ptr_to_char a, b; 只正确地声明了a但是b却被声明为一个字符。 3.4 常量 int const *pci;     // 一个指向整型常量的指针 int * const cpi;    // 一个指向整型的常量指针 5.4.4 优先级和求值的顺序 两个相邻操作符的执行顺序由它们的优先级决定。 如果它们的优先级相同它们的执行顺序由它们的结合性决定。 除此之外编译器可以自由决定使用任何顺序对表达式进行求值。 5.8 问题 2.下面程序的结果是什么 int func(void) { static int counter 1; return counter; } int main() { int answer; answer func() - func() * func(); printf($d\n, answer); } 6.13 指针运算 当一个指针和一个整数执行算术运算时整数在执行加法运算前始终会根据合适的大小进行调整。 即把整数量乘以指针所指向类型的大小。 指针 /- 整数 指针 - 指针 只有当两个指针都指向同一个数组中的元素时才允许从一个指针减去另一个指针。 可以在两个任意的指针间执行相等或不等测试。 7.2 函数声明 如果没有关于调用函数的特定信息编译器便假定在这个函数的调用时参数的类型和数量是正确的。它同时会假定函数将返回一个整型值。如果编译器认定函数返回一个整型值它将产生整数指令操纵这个值。 float f; f xyz(); xyz的返回值会被假定为整型当成整型返回然后转换成浮点型。 7.5 递归 许多教科书都把计算阶乘和斐波那契数列用来说明递归这是非常不幸的。在第1个例子里递归并没有提供任何优越之处。在第2个例子中它的效率之低是非常恐怖。 8.1 一维数组 对于int类型的数组数组名的类型就是“指向int的常量指针”。 int a[10]; int *c; a c;     // error int ap[10]; ap指针变量中的值即数组的起始地址。 *apap[0] ap[0] ap 6数组地址加6即第6个元素的地址。 *ap 6ap[0]6 *(ap 6)ap[6] 9.2 字符串长度 size_t strlen(char const *string); 注意strlen返回一个类型为size_t无符号整型的值。在表达式中使用无符号数可能导致不可预料的结果。 if ( strlen(x) strlen(y) ) ... if ( strlen(x) - strlen(y) 0) ... 第1条语句能按照你预想的那样工作第2条语句的结果将永远为真。左边的表达式将是无符号数而 无符号数绝不可能是负的。 类似的 if ( strlen(x) 10) ... if ( strlen(x) - 10 0) ... 原因同上。 9.3 不受限制的字符串函数 复制char *strcpy(char *dst, char const *src); 拼接char *strcat(char *dst, char const *src); 比较int strcmp(char const *s1, char const *s2); 注意常见错误if(strcmp(a, b))。以为如果两个字符串相等它的结果将是真。恰恰相反。 9.5 字符串查找基础 查找一个字符 char *strchr(char const *str, int ch); char *strrchr(char const *str, int ch); char string[20] Hello there, honey. char *ans; ans strchr(string, h);     // ansstring7 查找任何几个字符 char *strpbrk(char const *str, char const *group); ans strpbrk(string, aeiou);     // ansstring1 查找一个子串 char *strstr(char const *s1, char const *s2); 这个函数在s1中查找整个s2第1次出现的起始位置并返回一个指向该位置的指针。 9.9 内存操作 void *memcpy(void *dst, void const *src, size_t length); 和strn开头的函数不同它们在遇到NUL字节时并不会停止操作。 char temp[SIZE], values[SIZE]; memcpy(temp, values, SIZE);     // 复制char数组 int temp[SIZE], values[SIZE]; memcpy(temp, values, sizeof(values));     // 复制int数组要考虑移植性 int temp[5], values[SIZE]; memcpy(temp, values, 5 * sizeof(values[0]));     // 复制int数组的前5个元素 10.1 结构基础知识 struct SIMPLE { int         a; char      b; float      c; }; struct SIMPLE x; struct SIMPLE y[20], *z; 也可以将结构创建成一种新的类型。 typedef struct { int      a; char    b; float    c; } Simple; Simple x; Simple y[20], *z; 结构的自引用 struct SELF_REF2 { int     a; struct SELF_REF2 *b; int     c; } A; 如果声明struct SELF_REF2 b;则此结构定义是非法的。因为编译器在结构的长度确定之前就已经知道指针的长度所以声明成指针才是合法的。 访问方式*(A.b).a 或 A-b.a 10.3 结构的存储分配 struct ALIGN { char a; int    b; char c; }; 编译器按照成员列表的顺序一个接一个地给每个成员分配内存可以在声明中对结构的成员列表重新排列。 struct ALIGN2 { int    b; char a; char c; }; 10.4 作为函数参数的结构 void f(struct ALIGN a);     // 调用函数时要拷贝整个结构到栈中 void f(struct ALIGN *a);    // 只传递4字节的指针 10.5 位段 struct CHAR { unsigned ch : 7; unsigned font : 6; unsigned size : 19; } ch1; size位段过大无法容纳于一个短整型但其余位段都比一个字符还短。 位段使程序员能够利用存储ch和font所剩余的位来增加size的位数避免声明 一个32位的正数来存储size位段。 访问磁盘控制器的例子假设其地址为0xc0200142。 struct DISK_REGISTER_FORMAT { unsigned     command     : 5; unsigned     sector          : 5; unsigned     track            : 9; ... unsigned     ready           : 1; }; #define DISK_REGISTER ((struct DISK_REGISTER_FORMAT *) 0xc0200142) // 告诉控制器从哪个扇区哪个磁道开始读取 DISK_REGISTER-sector new_sector; DISK_REGISTER-track   new_track; DISK_REGISTER-command READ; while ( !DISK_REGISTER-ready) ; 10.6 联合 union { float     f; int        i; } fi; fi.f 3.14159; printf(%d\n, fi.i); 首先把π的浮点表示形式存储于fi然后把这些相同的位当做一个整型值打印输出。 11.1 - 3 malloc void *malloc(size_t size); void free(void *pointer); 这些函数维护一个可用内存池。当一个程序另外需要一些内存时malloc从 内存池中提取一块合适的内存。 calloc void *calloc(size_t num_elements, size_t element_size); calloc在返回指向内存的指针之前把它初始化为0。 realloc void realloc(void *ptr, size_t new_size); 如果原先的内存块无法改变大小realloc将分配另一块正确大小的内存 并把原先那块内存的内容复制到新的块上。 11.5 常见的内存错误 1. 忘记检查所请求的内存是否成功分配。 int *pi; pi malloc(100); if (pi NULL) { printf(Out of memory!\n); exit(1); } 2. 操作内存时超出了分配内存的边界。 3. 传给free函数一个指针让它释放一块并非动态分配的内存。 试图释放一块动态分配内存的一部分也有可能出错。 pi malloc(10 * sizeof(int)); free(pi 5); 4. 内存泄露 转载于:https://www.cnblogs.com/xiaomaohai/archive/2012/02/04/6157871.html
http://www.pierceye.com/news/860268/

相关文章:

  • 个人怎么做公司网站闲置电脑做网站服务器
  • 有没有什么 网站能够做试卷wordpress写 a href
  • 西安 北郊网站建设网站上传图片加水印
  • 沈阳网站制作哪家好包头爱出行app最新版本
  • 怎么用IP做网站地址网站如何投放广告
  • 试述电子商务网站的建设流程太原建站的模板
  • 微信群投票网站怎么做的企业门户网站怎么做
  • 建网站平台 优帮云嘉兴营销型网站
  • 建筑类专业做教育的网站ui设计app
  • 郑州做营销型网站的公司什么叫社交电商平台
  • 外国做问卷可以赚钱的网站做中国菜的外国网站
  • 青岛市建设厅网站快递网站建设
  • 昆明网站WordPress文章怎么折叠
  • 拖拽建站系统源码企业主题展厅设计公司
  • asp.net网站的数据库配置张家港网站 设计制作
  • 聊城手机网站建设多少钱扬州网站建设哪个好薇
  • 云南安宁做网站的公司手机网页制作软件中文版
  • 如何做征信公司网站做谷歌推广一定要网站吗
  • 重庆市做网站的公司有哪些苏州网站建设设计公司
  • 网站制作计算机域名解析到网站
  • 自己做的电影网站打开很慢wordpress 防采集
  • 西安专业网站建设公司排名做网站编写
  • 做电影网站还能赚钱云南网站建设哪家公司好
  • 重庆定制网站开发什么是网络营销战略
  • 网站建设硬件方案精准客源app
  • 网站视觉优化怎么做电子商务网站建设参考文献2018
  • 服务器可以吧网站做跳转吗wordpress 远程图片本地化
  • 网站在线访谈栏目建设个人网站可以备案了吗
  • 汉口北做网站搜索广告是什么
  • 电商网站可以用dw做嘉兴网站建设平台