关于c语言编程时的一些容易出错的小点吧--对于初学者来说

1:

#define  ZYY   1;

#define ZYY 1 

记住啊,宏定义后面没有‘;’

2:

char类型变量既可以存放字符型常量又可以存放整形常量

because:

在 C 语言中,char类型用于存储字符(character),如英文字母或标点符号。严格来说,char也是整数类型(integer type),因为char类型存储的实际上是整数,而不是字符。计算机使用特定的整数编码来表示特定的字符。

因此,char类型既可以存储字符型常量,又可以存储整数型常量。

存储字符型常量:

char c=‘A’;

存储整型常量:

char c=65;

3:关于全局变量和静态变量

芯片中的内存区域分为栈区、堆区、全局/静态存储区、常量存取区、代码区和寄存器区。

本文对全局/静态存储区进行总结。

全局变量以及static修饰的静态变量都存储在这个区域,由于同属于一片区域,所以其性质是一样的,那他们有什么性质呢?其实就是系统给全局变量和static修饰的静态变量在其生命周期的这段时间分配了固定的内存,每次程序需要用到该变量的时候,程序就会该内存地址调用该变量(类似于指针)。

extern修饰全局变量时它可以扩展全局变量的作用域。比如说在1.c中定义了一个全局变量a,在2.c文件中用extern对a变量进行声明,那么全局变量a的作用域就成了1.c文件和2.c文件。并且当1.c中的函数改变a的值时,2.c再调用a时为a修改过的值。

4:作用域与生命周期

先上链接:作用域和生命周期_作用域与生命周期-CSDN博客

作用域:指的是一段范围,如果非要在这个范围前加个定语的话,我希望是代码。针对编译和链接过程。

生命周期:说白了,我的理解是标识符具有存储空间的一段时间段。此阶段针对的是程序的执行过程。

其实我个人觉得这两个概念中会存在某种联系,也可能是现在造诣太浅会这么理解。作用域就是我们在编写代码的时候会考虑的东西,生命周期是我们编写完代码,执行代码的时候要考虑的东西。

5:枚举

上链接:C语言枚举详解-CSDN博客

主要有以下几点吧:

第一,枚举就是特殊的宏定义,用来定义一些有联系的符号。

第二,首先进行的是类型定义,定义一种类型,就像int,char一样。然后进行变量的声明,根据你所创建的枚举变量类型来声明变量,就像int a一样。最后是定义变量就像int a;a=1;或者int a=1;一样。枚举变量只能接收枚举类型中定义好的符号值。

6:指针

【C语言】深入理解二级指针_c语言二级指针-CSDN博客

让你不再害怕指针——C指针详解(经典,非常详细)-CSDN博客

先上两个链接吧,还没咋用到指针,所以现在对指针的理解也比较浅薄

目前总结俩点

①分清指针类型、指针所指向的类型、指针的值和指针本身所占据的内存区域。

②数组名本省也是指针,表示该数组的第一个数的起始地址。比如制作了一个函数void mmm(int *p) 再用它的时候,就可以直接mmm(str)    int str[];

7:预处理的个人理解

常见的预处理包含:文件包含、条件编译、宏替换、布局控制。 都是#开头

前边三个经常用,布局控制目前还没用到,等用到了再来叭叭。

条件编译,就是在编译器根据预处理命令和条件来判断那一部分编译,哪一部分不编译。

8.unsigned 和signed整形溢出

 在做例程的时候遇到了溢出的问题,unsigned如果向下溢出变成最大值。signed不同编译器有不同的处理方式

9.extern 的用法

深入理解extern用法-CSDN博客

10.return

return的四种用法_return跳出函数-CSDN博客

这个印象比较深了,return的作用是跳出函数。所以一个函数中可以包含多个return。但是只会返回一个值。

  • 18
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值