基本数据类型与sizeof理解

基本数据类型

image-20220527160150384

C常见内置类型

char
short
int
long
long long
float
double

如何看待数据类型

定义变量的本质:在内存中开辟一块空间,用来保存数据。

而定义一个变量是需要类型的,这个是基本语法决定的。那么类型的意义是什么呢?决定了开辟空间的大小

image-20220527160934855

那么,为什么要根据类型开辟空间呢?直接使用整个内存不可以吗?不好

因为使用整个内存,必然导致正在运行的程序用不完内存,而此时内存是不可以被其它程序使用的。也就导致了“占着茅坑不拉屎”,而且程序并不是一定需要在任何时刻就要用到所有需要的内存的,对于暂时不用的数据而分配了内存,那么就是空间浪费。

所以就需要根据计算场景而使用部分内存,计算场景决定了使用什么类型的变量,什么类型的变量也就决定了开辟多少字节的空间。

这就是为什么C语言会有如此多的数据类型,就是为了满足不同的计算场景。

比如,整形计算,字符计算,浮点型计算等等。

变量命名规则

  • 命名应当直观且可以拼读,可望文知意,便于记忆和阅读。标识符最好采用英文单词或其组合,不允许使用拼音。程序中的英文单词一般不要太复杂,用词应当准确。
  • 命名的长度应当符合”min-length && max-information“原则。C是一种简洁的语言,命名也应该是简捷的。例如变量名MaxVal就比MaxValueUntilOverflow好用。标识符的长度一般不要过长,较长的单词可通过去掉”元音“形成缩写。另外,英文词尽量不缩写,特别是非常用专业名词;如果有缩写,在同一系统中对同一单词就必须使用相同的表示法,并且注明其意思。
  • 当标识符有多个词组成时,每个词的第1个字母大写,其余全部小写,比如:int CurrentVal;这样的名字看起来比较清晰,远比一长串字符好得多。
  • 尽量避免名字中出现数字编号,如Value1Value2等,除非逻辑上的确需要编号,比如驱动开发时为引脚命名,非编号名字反而不好。
  • 对在多个文件之间共同使用的全局变量或函数要加范围限定符(建议使用模块名(缩写)作为范围限定符),比如全局变量可以在变量名前带g_,以表示全局含义。
  • 程序中不得出现仅靠大小写区分的相似的标识符。例如:int x;int X;int iint I等等,还有字母i和1,字母o和0这些。
  • 一个函数名禁止被用于其它之处。比如:int Add(int x, int y);int Add = 5;函数名不能再被用作变量名。
  • 所有宏定义、枚举常数、只读变量全用大写字母命名,用下划线分割单词。比如:只读变量const int MAX_LENGTH = 10;,宏定义#define FILE_PATH "/user/tmp".
  • 考虑到习惯性问题,局部变量中可采用通用的命名方式,但仅限与n、i、j、k等作为循环变量使用。一般来说习惯上用n、m、i、j、k等表示int类型的变量;c、ch等表示字符类型变量;a等表示数组;p等表示指针。当然这仅仅是一般习惯,除了i、j、k等可以用来表示循环变量外,别的字符变量名尽量不要使用。
  • 定义变量的同时千万千万别忘了初始化。定义变量时编译器并不一定清空了这块内存,它的值可能是无效的数据。
  • 不同类型数据之间的运算要注意精度拓展问题,一般低精度数据将向高精度数据拓展。

sizeof理解

sizeof是用来计算数据类型在内存开辟空间大小的

image-20220527160934855

sizeof不是函数

image-20220527165841582
可通过sizeof计算变量n可以不带括号时证明出sizeof不是函数,至于sizeof不带括号计算int是错误是因为sizeof是一个关键字,不能够直接去求另一个特定关键字的大小。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云朵c

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值