2021-07-10 初学c/c++,知识点整理

c语言各个数据类型的长度及范围
char %c
bool stdbool.h true false //特殊类型,c语言没有布尔类型,c99之后也只是依靠stdbool 头文件模拟。
unsigned char 1 %hhu 0~255 //unsigned表示无符号数;
unsigned short 2 %hu 0~65535
unsigned int 4 %u 0~-65536*65536-1
unsigned long 4/8 %lu
unsigned long long 8 %llu 0~65536^4-1

signed char         1       %hhd -128~127 //signed表示有符号数,如果数据类型不加前缀默认是有符号数
signed short        2       %hd -32768~32767
signed int          4       %d -2147483648 ~ 2147483647 
signed long         4/8     %ld
signed long long    8       %lld
float               4       %f
double              8       %lf
long double         12/16   %LF
C语言32个关键字:
数据类型:
    内建类型:void unsigned signed char short int long float double
    自定义类型:struct union enum typedef
    类型限定:auto const static volatile register extern
    字节数计算:sizeof 
流程控制:
    分支:if else 
    开关:switch case break default
    循环:for while do
    跳转:goto continue return
    其中特殊的有auto这个关键字在c++中表示自动类型,比如auto x;由编译器推断x的数据类型;而在c中早期用于定义临时变量(局部变量和块),C11标准中它可以用于定义自动推导类型的变量。;
    const 用于"保护"变量不被"显式"修改,提高程序的安全性,但也可以通过特殊方法修改const变量的值。(如果data内存中的变量被const修饰后就存储到了text段,就变成了真正的常量。)
    static 改变存储位置、延长生命周期、限制作用域。修饰函数、全局变量:限制函数和全局变量的作用域,只能在它所在的.c文件中使用,可以防止函数、全局变量的命名冲突。

c语言的几个数据储存位置

   代码段text:存储二进制指令和一些常量数据,特点:该内存段是只读的,强行修改会发生段错误。
   
  数据段data:初始化过的全局变量、静态变量。
  静态数据段bss:未初始化过的全局变量静态变量,特点:程序运行前该段内存会被清理为零,所以全局变量、静态变量默认值为零。
堆heap:由程序员使用malloc系列函数,自己管理的一块内存,特点足够大。
栈stack:存储局部变量,由系统自动(分配、释放)管理,会随着函数的调用分配内存,函数执行结束释放内存,特点:安全、方便。
 C语言中没有管理堆内存的语句,而是由标准库提供一套函数来管理堆内存。
#include <stdlib.h>
#include <strings.h>
    void *malloc( size_t size );
   void bzero(void *s, size_t n);
  void *memset(void *s, int c, size_t n);//几乎用不到下面这两个
  void *calloc(size_t nmemb,size_t size);
  
上一篇:RStudio server 自动掉线 安全是安全了,但是方便在哪里???


下一篇:c语言中不同整数类型的显示