C语言中的一些容易出现错误的知识点

本文详细解析了C语言中全局变量的定义、引用及注意事项,并介绍了continue、break、return等控制语句的功能与区别。同时,还探讨了数据结构中的字节对齐原理及其目的。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 如何引用一个已经定义过的全局变量?

  • 如果定义的全局变量在同一文件中,则可以直接引用。

  • 如过引用的文件在其他文件中,则有两种方式来引用,一个是通过*.h文件,另一个是通过关键字extern来声明。

注意:定义和声明的区别?
定义一个变量是是在内存中分配一定的空间;声明一个变量是告诉编译器有这个变量的存在。

2. 全局变量可不可以定义在可被多个.c文件中包含的头文件中?为什么?

  • 不可以,全局变量作用与整个模块中,只能被定义一次。如果引用多个.c文件包含.h 文件,则就意味着被定义了多次。

  • 如果全局变量在.h文件中被定义为static则可以被多个.c文件引用。因为静态全局变量只作用与整个文件中。

3. continue,break,return的用法

  • continue,break,return的区别

    • continue:结束本次循环,执行下次循环
    • break:跳出循环,也就是结束循环
    • return:返回主调函数
  • break语句为什么不能使用在if语句中?

    • break语句可以使用在for,while ,swich结构中,但不能使用在if语句结构中。

    • break跳出的是循环结构,也就是跳出最接近的break语句那层的循环结构。因为if不是循环结构,所以,当break用在循环结构中嵌套的if语句时,其跳出的不是if语句,而是循环结构。

    • break语句用在循环结构中跳出的是当前一层的循环。

4.数据结构中字节对齐:

  • 前一个字节数要和后一个字节数对齐(如果前一个字节数大于后一个字节数,则前一个就”不用对齐”),所有的字节数加一起要能整除结构中的最大字节数。

  • 数据结构中嵌套数据结构,则嵌套的数据结构按该结构中的最大字节数对齐。计算时要加上该数据结构的大小。

注意:
- 字节对其的目的是为了提高对数据的访问速度。

  • union结构大小的计算规则:
    • 其结构的大小是最大成员的整数倍
    • 其结构的大小是联合体中每个成员数据类型的整数倍。
      例如: typedef union {
      long a;
      char b[6];
      }un; sizeof(un) = _ 8__
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值