C语言知识总结


C语言知识总结(近期笔试遇到的,锐捷,多米)

1. argv 最后一个元素是空指针! 比如ls -l remind 分别是argv[0] argv[1] argv[2]  argv[3]为空指针

2. strcpy(char *s1,const char *s2)将s2中的字符复制到s1中直到s2遇到第一个空字符为止,并且s2的结束字符也复制进去了!!!

3. char 分为unsigned 无符号与有符号,int 4 float 4 double 8 short 2

4.

 struct {
  int i;
  char c;
  enum suit{one,two,three,five,aaa};//这里定义了变量‘;’前面加上a
  char cc;
 }node;

其中枚举是不占空间的,这里有没有枚举sizeof(node)结果都是8,但是如果enum定义了变量a,那么将增加8字节

但是单独sizeof(suit)的结果是4;

如果是联合union,那么要算联合里面单个最大字节的那个;如果第一次给它赋值后再给它赋值,那么先前的值就不存在了!比如union里面有int,float,double,给double,然后给int,那么double就不存在了,输出不确定的值。

5.以防包含重复的头文件,还可以用#pragma + 命令 表示只执行一次

#ifndef _MAIN_
#define _MAIN_

#endif 

6.函数指针

int (*funArr[10])(float, char, char)
int result2 =(*funArr[0]) (12, 'a', 'b')

这是定义一个数组10个成员,每个成员是一个函数指针,参数为float,char,char,返回为int

7.对于整数数组可以通过sizeof(arr)/sizeof(int)来计算个数,字符串直接判断结尾字符即可

8.0的ASCII对应的是48,A对应的是65,a对应的是97,这个要牢记

9.局部变量与全局变量,局部变量所在的范围内会覆盖全局变量

10.cin使用空白来定字符串的界(空格,制表符,换行符),也就是只会读取第一个单词,遇到空白就结束。所以需要使用面向行的类成员函数,getline(),里面参数是数组名,数组长度。通过回车符判断输入结束。

11.结构中的位字段

struct {
 unsigned int age:4;  //低4位
 unsigned int in:4;  //接着4位
 bool ismax:1;
};

这样可以节约空间。

12.指针一定要在解引用之前给一个确定的地址。

13.引用本身不占空间

C++ Primer Plus 第6版 中文版 清晰有书签PDF+源代码

读C++ Primer 之构造函数陷阱

读C++ Primer 之智能指针

读C++ Primer 之句柄类

将C语言梳理一下,分布在以下10个章节中:

  1. Linux-C成长之路(一):Linux下C编程概要
  2. Linux-C成长之路(二):基本数据类型
  3. Linux-C成长之路(三):基本IO函数操作
  4. Linux-C成长之路(四):运算符
  5. Linux-C成长之路(五):控制流
  6. Linux-C成长之路(六):函数要义
  7. Linux-C成长之路(七):数组与指针
  8. Linux-C成长之路(八):存储类,动态内存
  9. Linux-C成长之路(九):复合数据类型
  10. Linux-C成长之路(十):其他高级议题

本文永久更新链接地址:

相关内容

    暂无相关文章