无论在什么时候,如果遇到malloc(strlen(str));,几乎可以直接断定他是错误的,而malloc(strlen(str)+1);才是正确的;

  一个L的NUL哟关于结束一个ACSII字符串;两个L的NULL用于表示什么也不指向(空指针);ACSII字符中零的位模式被称为NUL。表示哪里也不指向的特殊的指针则是NULL。

  swtich语句从匹配表达式的case开始执行,所以在swtich语句左花括号后声明的一些变量没有什么用处,因为他不会被执行;

#include<stdio.h>
int main(){
int temp = ;
switch(temp){
int tem = ;
case :
printf("0\n");
break;
defau1t:
printf("nothing!\n");
break;
}
return ;
}

  代码编译失败,显示:“tem”的初始化操作由“case”标签跳过;swtich所有的case都是可选的,包括带标签的语句都是允许的;switch最大的缺点是如果没有break的话,他不会在case标签后面的语句执行完毕后致动中止。会依次执行后面的语句,直到某个break或者全部执行完毕;

#include<stdio.h>

int main(){
int temp = ;
switch(temp){
//int tem = 0;
case :
printf("0\n");
case :
printf("1\n");
defau1t:
printf("nothing!\n");
}
return ;
}

  上面没有break的switch语句输出结果为:0'\n'1'\n'nothing!

  ANSI C引入的一个新特性是相邻的字符串常量被自动合并成一个字符串的约定。

  c语言优先级问题:.的优先级高于*,->的优先级用于消除这个问题;[]高于*;函数()高于*;==和!=高于位操作符;==和!=高于赋值符;算术运算高于移位运算符;逗号运算符在所有运算符中优先级最低。

  fgets比gets安全,因为fgets指定了大小,如果超出数组大小,会自动根据定义数组的长度截断;而gets没有指定输入字符的大小,限制输入缓冲区的大小,如果输入的字符大于定义的数组长度,会发生内存越界,堆栈溢出。fgets不会像gets那样自动地去掉结尾的\n,所以程序中手动将\n位置处的值变为\0,代表输入的结束。

  结构的声明:struct 结构标签{类型 标识符;}变量定义;结构也允许存在位段、无名字段以及字对齐所需的填充字段。这种用法通常被称为深入逻辑元件的编程;他也能用于把一个布尔标志以位而不是字符来表示,位段的类型必须是int,unsigned int或signed int。int位段的值可不可以为负取决于编译器。

  声明相当于普通的声明:它所说明的并非自身,而是描述其他地方的创建的对象;定义相当于特殊的声明:它为对象分配内存。

  使用指针和数组访问方式非常不同;数组直接保存数据,直接访问数据,通常用于存储固定数目挨饿类型相同的元素;而指针保存的是数据的指针,间接访问数据,首先取得指针的内容,把它作为地址,然后从这个地址提取数据,通常用于动态数据结构;

  

c专家编程读书笔记的更多相关文章

  1. 类型解释器——C专家编程读书笔记

    对于声明,应该按下面的步骤来进行解释: 1) 声明从它的名字开始读取,然后按照优先级顺序依次读取 2) 优先级顺序 a) 括号括起来的部分 b) 后缀操作符,()表示函数,[]表示数组 c) 前缀操作 ...

  2. Node.js高级编程读书笔记Outline

    Motivation 世俗一把,看看前端的JavaScript究竟能做什么. 顺便检验一下自己的学习能力. Audience 想看偏后台的Java程序员关于前端JavaScript的认识的职业前端工程 ...

  3. 《android开发进阶从小工到专家》读书笔记--HTTP网络请求

    No1: 客户端与服务器的交互流程: 1)客户端执行网络请求,从URL中解析出服务器的主机名 2)将服务器的主机名转换成服务器的IP地址 3)将端口号从URL中解析出来 4)建立一条从客户端与Web服 ...

  4. python高级编程读书笔记(一)

    python高级编程读书笔记(一) python 高级编程读书笔记,记录一下基础和高级用法 python2和python3兼容处理 使用sys模块使程序python2和python3兼容 import ...

  5. C++Windows核心编程读书笔记

    转自:http://www.makaidong.com/%E5%8D%9A%E5%AE%A2%E5%9B%AD%E6%96%87/71405.shtml "C++Windows核心编程读书笔 ...

  6. CSAPP 并发编程读书笔记

    CSAPP 并发编程笔记 并发和并行 并发:Concurrency,只要时间上重叠就算并发,可以是单处理器交替处理 并行:Parallel,属于并发的一种特殊情况(真子集),多核/多 CPU 同时处理 ...

  7. unix环境高级编程-读书笔记与习题解答-第一篇

    从这周开始逐渐的进入学习状态,每天晚上都会坚持写c程序,并且伴随对这本书的深入,希望能写出更高质量的读书笔记和程序. 本书的第一章,介绍了一些关于unix的基础知识,在这里我不想去讨论linux到底是 ...

  8. UNIX网络编程--读书笔记

    会集中这段时间写UNIX网络编程这本书的读书笔记,准备读三本,这一系类的文章会不断更新,一直会持续一个月多,每篇的前半部分是书中讲述的内容,每篇文章的后半部分是自己的心得体会,文章中的红色内容是很重要 ...

  9. MacTalk·人生元编程 - 读书笔记

    简介 <MacTalk·人生元编程>是一本随笔文集,主要内容来自作者的微信公众平台"MacTalk By 池建强".本书撰写于2013年,书中时间线却不止于此.作者以一 ...

随机推荐

  1. 集合源码分析之 HashMap

    一 知识准备 HashMap是基于哈希表的Map接口的非同步实现.此实现提供所有可选的映射操作,并允许使用null值和null键.此类不保证映射的顺序,特别是它不保证该顺序恒久不变. 二  HashM ...

  2. 十、mysql之索引原理与慢查询优化

    mysql之索引原理与慢查询优化 一.介绍 1.什么是索引? 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出问题的,还 ...

  3. Idea中maven依赖图查看

    技术交流群: 233513714 使用Intellij idea,想看看它的maven依赖图,根据eclipse的经验,不是很容易能找到Intellij idea对应的功能.在打开的pom.xml文件 ...

  4. 剑指Offer - 九度1505 - 两个链表的第一个公共结点

    剑指Offer - 九度1505 - 两个链表的第一个公共结点2013-11-24 20:09 题目描述: 输入两个链表,找出它们的第一个公共结点. 输入: 输入可能包含多个测试样例.对于每个测试案例 ...

  5. 【转载】全面解析Unity3D自动生成的脚本工程文件

    我们在Unity3D开发的时候,经常会看到它会产生不少固定命名工程文件,诸如:  Assembly-CSharp-vs.csproj  Assembly-CSharp-firstpass-vs.csp ...

  6. Entity Framework(一)

    相关知识点复习: 1.var 类型推断: var p=new Person(); 2.匿名类型: var a=new {Name="wang",Age=12  }; 3.给新创建的 ...

  7. c++知识点总结-模板特化

    类模板的全特化与偏特化 类模板 template<typename T1, typename T2> class Test { public: Test(T1 i,T2 j):a(i),b ...

  8. shell之ip命令

    转:出处我也不知道了,学习时候记下的笔记 1.作用 ip是iproute2软件包里面的一个强大的网络配置工具,它能够替代一些传统的网络管理工具,例如ifconfig.route等,使用权限为超级用户. ...

  9. SPOJ 149 FSHEEP Fencing in the Sheep ( 计算几何 + 二分 )

    以下摘自SPOJ泛做表格: 题意:给定一个星形多边形,而且给出了一个可以看到形内所有点的位置(我们称这个点为观察点),让你判断有多少个点位于多边形内. 时间复杂度:O(mlogn) 将多边形上的点按极 ...

  10. UVa 11374 - Airport Express ( dijkstra预处理 )

    起点和终点各做一次单源最短路, d1[i], d2[i]分别代表起点到i点的最短路和终点到i点的最短路,枚举商业线车票cost(a, b);  ans = min( d1[a] + cost(a, b ...