当前位置: 首页 > 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.lryc.cn/news/584441.html

相关文章:

  • 苍穹外卖—day1
  • Redis中BigKey的隐患
  • CMake指令:add_custom_command和add_custom_target详解
  • SYM32第二十天 ESP8266-01S和电脑实现串口通信(3)
  • 限流式保护器如何筑牢无人驾驶汽车充电站的安全防线
  • 智慧气象新范式:人工智能如何重构城市级气象服务生态?
  • 计算机网络实验——以太网安全实验
  • Java 枚举详解:从基础到实战,掌握类型安全与优雅设计
  • GO 启动 简单服务
  • 前端项目集成husky + lint-staged + commitlint
  • 蓝桥云课 矩形切割-Java
  • AI 智能体:从辅助工具到自主决策者
  • AI测试革命:从智能缺陷检测到自愈式测试框架的工业实践
  • 数据提取之bs4(BeautifuSoup4)模块与Css选择器
  • Sigma-Aldrich细胞培养基础知识:细胞培养的安全注意事项
  • centos7 安装jenkins
  • 百度文心ERNIE4.5部署与性能白皮书:FastDeploy加速方案+全系列模型实测数据对比
  • Shader面试题100道之(61-80)
  • Django--01基本请求与响应流程
  • 个体户核定多地暂停,将不再享受核定征收?
  • 二分查找篇——搜索旋转排序数组【LeetCode】两次二分查找
  • 专题:2025供应链数智化与效率提升报告|附100+份报告PDF、原数据表汇总下载
  • 2025企业私有化知识库工具选型指南——标普智元深度解读
  • 多商户商城系统源码选型指南:开源 vs 定制,哪种更适合?
  • 第七讲:C++中的string类
  • [实战]调频(FM)和调幅(AM)信号生成(完整C语言实现)
  • java多线程环境下资源隔离机制ThreadLocal详解
  • 【C++】红黑树的底层思想 and 大厂面试常问
  • Web前端:table标签的用法与属性
  • 学习日记-spring-day45-7.10