c拾遗

来源:互联网 发布:淘宝装修消除模块间距 编辑:程序博客网 时间:2024/06/04 17:47

C转义字符:

这里写图片描述

内存布局:

这里写图片描述

局部变量和全局变量

局部变量没有声明和定义的区别
全局变量有声明和定义的区别
全局变量和函数⼀样,声明可以多个,定义只有⼀个
全局变量如果有声明,没有定义,会⾃动初始化⼀个0

主要的语句类型

这里写图片描述

控制结构

结构化程序设计提供了3种控制结构:
这里写图片描述

函数求参数顺序:

(GCC、VC编译器)函数参数从右向左输入。

函数的副本机制:

结构体变量有副本机制,结构体数组没有,结构体变量内部有数组也有副本机制

二维动态数组:

第一种:整体排序是连续的,与静态二维数组一样使用
第二种:整体之间是不连续的,一个指针数组,每个元素是指针,存放另外一个数组的地址

const常量

这里写图片描述
这里写图片描述

进程

一个exe不可以随意读取另外一个exe的内存
Windows内部,进程之间不能直接访问

可变参数

#include <stdio.h>#include <stdarg.h>#include <stdlib.h>#include <string.h>//可变参数double add(int num, ...){    double res = 0.0;    va_list argp;//    va_start(argp, num);//读取参数    for(int i = 0; i< num; i++){        double tmp = va_arg(argp, double);        printf("%lf\n", tmp);        res += tmp;    }    va_end(argp);    return res;}int main(){    double res = 0;    res = add(3, 1.0, 2.0, 3.0);    printf("result = %lf\n", res);    return 0;}/* ANSI标准形式的声明方式,括号内的省略号表示可选参数 */  int demo(char *msg, ... )  {      va_list argp;                   /* 定义保存函数参数的结构 */      int argno = 0;                  /* 纪录参数个数 */      char *para;                     /* 存放取出的字符串参数 */                                      /* argp指向传入的第一个可选参数,    msg是最后一个确定的参数 */      va_start( argp, msg );      while (1)     {          para = va_arg( argp, char *);                 /*    取出当前的参数,类型为char *. */          if ( strcmp( para, "\0") == 0 )                                                        /* 采用空串指示参数输入结束 */              break;          printf("Parameter #%d is: %s\n", argno, para);          argno++;      }      va_end( argp );                                   /* 将argp置为NULL */      return 0;  }int mainwww( void )  {  demo("DEMO", "This", "is", "a", "demo!" ,"333333", "\0");  return 0;}  

C语言相关的经典书籍

个人稍微分了一下类,有的看过,有的听人“传说过”,欢迎大家补充和共同学习。

真心经典:每个行业或者领域都有一些东西是不会随时间而逐渐消逝,以下的就是。

《C语言程序设计》(第2版.新版)/《The C Programming Language》

《C语言核心技术》/《C in a Nutshell》

《代码大全》/《Code Complete》

底层相关:由于C语言之初是为了编写操作系统而来得,所以对底层的操作目前尚无任何其他语言可以替代。介于以上情况,再往下走一层是必要的。

《 深入理解计算机系统(原书第2版)》/《Computer Systems : A Programmers Perspective》

《连接器与加载器》/《linker and loader》

指针相关:大家都说能不能熟练的使用指针式区分一个人是不是掌握了C语言的标志。

A solid understanding of pointers and the ability to effectively use them separates a novice C programmer from a more experienced one. ——《Understanding and Using C Pointers》

《C和指针》/《Pointers on C》

《理解C指针》/《Understanding and Using C Pointers》

《征服C指针》

**数据结构:**Data Structure 与 Algorithm一般是绑定的,其实这个是独立于语言之外的东西,只是通过C实现来着,这里。

《数据结构与算法分析:C语言描述(原书第2版)》/《Data Structures and Algorithm Analysis in C》

《C语言接口与实现 : 创建可重用软件的技术》/《C Interfaces and Implementations Techniques for Creating Reusable Software》

《算法精解:C语言描述》/《Mastering Algorithms with C》

《算法导论》/《Introduction to Algorithms》

补充进阶:

《你必须知道的495个C语言问题》/《C 语言常见问题集》/《C Programming FAQs: Frequently Asked Questions》

《C陷阱与缺陷》/《C Traps and Pitfalls》

《C专家编程》/《Expert C Programming》

《C 语言常见问题集》/《comp.lang.c Frequently Asked Questions》

《编程珠玑》/《Programming Pearls》

**标准参考:**ISO制定的C语言的标准,另附加一些C库相关的。

《C99标准》/《ISO-IEC-9899-TC3》

《C标准库》/《The C Standard Library》

《C语言:标准和实现》

编程规范:好习惯是前任在犯了大量错误基础之上总结的,虽说不一定适合我们每个人,但看看总是好的。可以防止一些错误,也可以让别人看懂你的代码。

《华为编程规范》

《编程精粹:Microsoft 编写优质无错 C 程序秘诀》/《Writing Clean Code》/《Writing Solid Code》

《编写可读代码的艺术》/《The Art of Readable Code》

《MISRA-C-2004:Guidelines for the use of the C language in critical systems 》

国内不错:

《高质量 C++/C 编程指南》

《C语言深度解剖》

葵花宝典:

《计算机程序设计艺术:卷1,2,3…》/《The Art of Computer Programming》-TAOCS

ps:大都是英文原版,(国产的不多啊,╮(╯▽╰)╭)另外有一些个人收集的其他C语言资料,欢迎补充。

其他:

Advanced C.pdf
Algorithms + Data Structures = Programs.pdf
Algorithms.pdf
Beautiful Code.pdf
C How to Program 6th Edition.pdf
C in a Nutshell.pdf
C Interfaces and Implementations Techniques for Creating Reusable Software.pdf
C Interfaces and Implementations-v1.zip
C Language Reference Manual.pdf
C Pocket Reference.pdf
C PROGRAMMING NOTE.pdf
C-A Reference Manual 5th Edition.pdf
c-gods-programming-language.jpg
Clean Code - A Handbook of Agile Software Craftsmanship.pdf
Code Reading - The Open Source Perspective.pdf
cplus_3.0.zip
cplus_3.0_manual.pdf
C与C++中的异常处理.pdf
C嵌入式系统编程.pdf
C标准和实现-Vol.I-姚新颜.pdf
C程序设计语言.pdf
C语言深度剖析.pdf
Data Structures and Algorithm Analysis in C 2nd Edition Solution Manual.pdf
Data Structures and Algorithm Analysis in C.pdf
Debugging with GDB,9th Edition[2004,378P].pdf
Embedded Systems Building Blocks Complete and Read-to-Use in C(CN).pdf
Embedded Systems Building Blocks Complete and Read-to-Use in C.pdf
Essential C.pdf
Expert C Programming.pdf
Head First C.pdf
Head First Design Patterns.pdf
How to Write Shared Library.pdf
Indian Hill C Style and Coding Standards.pdf
ISO-IEC-9899-1999 (E).pdf
ISO-IEC-9899-201x.pdf
ISO-IEC-9899-TC3.pdf
Linux C编程.pdf
Mastering Algorithms with C-examples.zip
Mastering Algorithms with C.pdf
MISRA-C-2004-1224571.pdf
MISRA-C-2004-中文版.pdf
Nine Algorithms That Changed the Future.epub
OOC ANSI-C 面向对象编程.pdf
OOC.pdf
Pointer on C(cn).pdf
Pointers On C Instructors Guide.pdf
Pointers on C.pdf
Practical C Programming, 3rd Edition-examples.zip
Practical C Programming, 3rd Edition.pdf
Programming in C.pdf
Recommended C Style and Coding Standards.pdf
Sorting and Searching Algorithms.pdf
Structure and Interpretation of Computer Programs - Harold Abelson.mobi
The Art of Debugging.pdf
The Art of Readable Code(CN).pdf
The Art of Readable Code(EN).pdf
The C Programming Language.pdf
The C Standard Library.pdf
The Clean Coder.pdf
The Elements of Programming Style_2ed_Kernigh.pdf
Understanding and Using C Pointers.pdf
Write Great Code-Volume1 Randall Hyde.pdf
Write Great Code-Volume2 Randall Hyde.pdf
Writing Clean Code.pdf
Writing Solid Code.pdf
《嵌入式Linux应用程序开发标准教程》(第2版全).rar
代码大全.pdf
你必须知道的495个C语言问题(EN).pdf
你必须知道的495个C语言问题.pdf
十五个经典算法研究与总结、目录+索引.pdf
华为编程规范.pdf
算法 英文版第4版.pdf
算法-java实现-第四版-答案.rar
算法导论.rar
经典算法大全.pdf
编写高质量代码-WEB前端开发之道.pdf

原创粉丝点击