当前位置: 首页 > news >正文

C语言易错点整理(一)

1、对于字符数组而言,只是将这些字符放进我们所开辟的空间里,不能直接用strlen计算,因为没有"\0",会导致出现随机值,例如一下代码

char arr[] = {'b', 'i', 't'};
printf("%d", strlen(arr));

2、switch语句中,关键字包含case、break、default,但是不包含continue(不执行其下面的语句直接返回判断条件判断)

3、在不同作用域中可以有相同名称的变量,但是在同一作用域中不行;若是在不同作用域中有相同的变量名,则采取就近原则

int num = 10;
int main()
{int num = 1;printf("num = %d\n", num);return 0;	
}

4、布尔变量是C99标准引入的,在此之前C语言中没有bool类型

5、printf指定输出格式的时候,%5d是最少打印5位,如果出现了比五位还长的情况,就全部打印

printf("%5d\n", 123456);

6、逗号表达式:以逗号位分割单位一次执行,比如一下就是先对b进行运算,再对c和a的前后置++运算

b = ++c, c++, ++a, a++;

7、switch语句中的case可以不讲究顺序,default语句可以任意位置,并且case后的表达式只能是整型常量表达式,不支持float和double

8、在复合语句中定义的变量只能在复合语句中使用,比如一下情况

for(int i = 0; i < 100; i++)
{printf("%d", i);
}
i = 100;//这里i就是未命名变量

9、变长数组是用整型变量或表达式来定义数组大小,他的大小一定在运行的时候确定,不是在编译的时候,而且一但确定了就不能再改变(注意区分柔性数组)

10、对于一位数组和二位数组而言,在定义的时候,在中括号里填写的是具体的行数/列数,但在使用的时候,是从0开始的数组下标;二维数组可以省略行,将行数交给编译器根据给定的数据个数进行确定,但是不能省略列

11、函数的声明必须放在使用之前,但是定义放在哪里都可以,例如以下代码

//声明
int Add(int x, int y);//使用
int main()
{int c = Add(x, y);return 0;
}//定义
int Add(int x, int y)
{return x + y;
}

12、C语言中指针就是地址,地址就是指针;内存中的每个字节都有地址,通过地址可以找到唯一一个内存单位

13、对于一个表达式,就是我们已经确定了优先级以及结合性,也不一定能确定计算结果,比如以下代码,在vs和Linux gcc测试结果就不同

int ret = (++i)+(++i)+(++i);

14、A中const修饰的是*p表示的是*p不可修改,即p指向的对象不可以被修改;

        B中const修饰的也是*p,其意义 和A一样

        C中const修饰p本身,表示的是p本身不可以修改但是p指向的对象可以修改

        D中第一个const表示p指向的内容不可以被修改,第二个const表示p本身不可以被修改

A const char *pB char const *pC char*const pD const char *const p

http://www.dtcms.com/a/272887.html

相关文章:

  • 开源无线硬件系列射频收发器模块 RFMC6000
  • 亚马逊运营中出单词反查功能的深度应用
  • 【fitz+PIL】PDF图片文字颜色加深
  • Jenkins邮件通知终极指南:Email Extension Plugin高级配置
  • 电机试验平台的千年进化史
  • 对S32K144做的VCU安装快速开发Simulink库及VCU例程介绍
  • [架构之美]虚拟机Ubuntu密码重置
  • java(2025/7/10)
  • (单调队列优化)洛谷P2627 USACO11OPEN Mowing the Lawn / P3572 POI2014 Little Bird 题解
  • 《数据库》 MySQL库表操作
  • 磐维数据库panweidb集中式集群配置VIP【添加、删除和修改】
  • Chromium 引擎启用 Skia Graphite后性能飙升
  • websocket的客户端(发送接收json的消息)
  • vue3 td 标签优化时间显示
  • 穿梭时空的智慧向导:Deepoc具身智能如何赋予导览机器人“人情味”
  • 如何自动计算照片中光伏板数量:基于开源项目的自动识别光伏板计数解决方案
  • C++初阶-仿函数
  • 利萨如图形详解:原理与Python动态绘制
  • 数据库常见元数据表
  • .NET Framework 安装失败及异常情况 常用处理方法
  • 【前端】【Echarts】【Liquidfill 水球图】深入理解 ECharts Liquidfill 水球图:从入门到进阶
  • 解决飞牛 NAS 安装 OpenResty时的端口被占用问题!(如何解决飞牛Nas 80 443 端口被占用的问题)
  • C++ 模板参数展开
  • AI测试革命:从智能缺陷检测到自愈式测试框架的工业实践
  • 谷粒商城高级篇
  • 用GNU Radio生成Frank信号
  • Redisson 的分布式锁
  • 动态物体滤除算法
  • 全连接神经网络
  • AI教学设计助手:生成好教案的Prompt技术实战(二)