C语言核心函数与控制流全解:从基础到高阶避坑指南

一、输入与内存管理:scanf与sizeof的精准掌控

1. scanf的输入艺术

int num;
char str[20];
scanf("%d %19s", &num, str);  // 注意字符串长度限制

关键要点:

  • 安全输入:使用%ns限制字符串长度(如%19s),防止缓冲区溢出
  • 缓冲区残留问题:输入后使用 while(getchar() != '\n'); 清空

2. sizeof的内存测量

int arr[5];
printf("数组大小:%zu", sizeof(arr));        // 输出20(假设int为4字节)
printf("元素个数:%zu", sizeof(arr)/sizeof(arr[0]));  // 输出5

易错场景:

  • 指针陷阱sizeof返回指针大小(4/8字节),而非指向数据大小
  • 字符串长度sizeof包含\0strlen不包含(如"hello":6 vs 5)

你可能感兴趣的:(c语言,开发语言)