C语言中的难点

  1. C语言把内存划分成四个区,它把一般的变量和数组等存在于内存中的栈区,全局变量在静态区
  2. 若指针没有被初始化,那么指针可能会指向任何内存位置,这样可能会导致程序崩溃或者行为不确定,野指针就是指针指向的位置是不可知的(随机的、不正确的、没有明确限制的)指针变量在定义时如果未初始化
  3. 多个指针指向同一个地址,这样使用没什么问题
  4. c++中有string类可以直接定义字符串,而c语言中不可以,只可以引入string.h包含处理字符串的函数,但是定义还是char[]数组类型
  5. 数据结构(尤其是栈)应该尽可能地在自然边界上对齐。 原因在
    于,为了访问未对齐的 内存,处理器需要作两次内存访问;而对齐的内访问仅需要一次访问。总体来说:结构体的内存对齐是拿空间来换取时间的做法。优点是提高了cpu访问性能。
  6. p+1就是a+1的值都代表a[1]的地址,两者是相等的
相关推荐
菜鸟小九7 分钟前
JUC(共享模型之管程、synchronized、wait、park、活跃性、renetrantlock、条件变量)
java·开发语言·juc
水云桐程序员8 分钟前
一个GCC编译C语言命令的执行过程和错误输出:目录不存在:当前目录下没有output子目录|C语言编译的解决办法|Visual Studio Code
c语言·开发语言·vscode
小樱花的樱花17 分钟前
4 文件选择对话框 QFileDialog
开发语言·c++·ui
xyq202419 分钟前
Python File 方法详解
开发语言
动恰客流管家20 分钟前
动恰3DV3客流统计方案:赋能智慧公厕精细化运营
数据结构·人工智能·3d
-Rane22 分钟前
【C++】红黑树
java·开发语言
leaves falling25 分钟前
深入浅出 C++ STL list:从入门到精通
开发语言·c++
饕餮争锋26 分钟前
Bash 简介
开发语言·bash
努力的小帅34 分钟前
蓝桥杯——入门
c语言·单片机·蓝桥杯
爱吃烤鸡翅的酸菜鱼43 分钟前
【Java】封装位运算通用工具类——用一个整数字段替代几十个布尔列,极致节省存储空间
java·开发语言·设计模式·工具类·位运算·合成复用原则