ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2021-07-10 11:32:00  阅读:149  来源: 互联网

标签:知识点 07 10 void unsigned long signed 全局变量 size


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);
  

标签:知识点,07,10,void,unsigned,long,signed,全局变量,size
来源: https://blog.csdn.net/byoib/article/details/118632255

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有