打印
[开发资料]

C语言高效编程第一步:搞定变量和数据类型

[复制链接]
113|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
C语言大家都不陌生吧,计算机、电子信息、通信工程、自动化等专业的必学课程,前面和大家介绍过C语言的历史和编程环境,今天,我们再来介绍一下变量和数据类型。
C语言是一门静态类型的底层编程语言,也就是说任何变量都必须有一个确定的类型,并且该类型在被编译时是可知的。因此,在C语言编程时,每创建一个变量,就必须声明变量类型。从单片机编程的角度,声明一个变量,其数据类型为无符号整型uin8_t ,名称为 Val_Counter:
uint8_t Val_Counter; //数据类型为无符号整型,名称为Val_Counter;

变量声明


使用特权

评论回复
沙发
小夏天的大西瓜|  楼主 | 2023-12-16 11:32 | 只看该作者
本帖最后由 小夏天的大西瓜 于 2023-12-16 11:35 编辑

1、变量的命名规范
所谓,无规矩不成方圆,变量的名字可以任意取,但是要遵循一定的命名规范,变量名可以包含任意的字母,但是区分大小写,也可以包含数字和下划线,但是不能以数字作为开头。




uint8_t val_counter;       //正确的变量声明;
uint8_t Val_Counter;      //正确的变量声明;
uint8_t Val_Counter100;//正确的变量声明;
uint8_t 1Val_Counter;    //错误的变量声明;

变量的命名虽有规范,但是取名字也有规范,要保证的大原则就是:变量名通俗易懂,一看就能知道其含义,避免直接用a,b,c,aa,kk,tt这种无章法的命名方式。

使用特权

评论回复
板凳
小夏天的大西瓜|  楼主 | 2023-12-16 11:38 | 只看该作者
2、变量的初始化和赋值
变量一旦被合法声明了,那么就可以在编程时使用了,可以根据编程的需要给变量赋值。当然,任何变量都有初始值,在声明变量的时候可以给变量赋一个值。被赋的值与进制没有关系,可以写十进制,也可以写十六进制或者是二进制。



uint8_t val_counter1 = 10;       //初值为10;
uint8_t Val_Counter2 = 0x0A; //初值为10;



也可以在程序中赋值,做计算。



#include <reg51.h>

int main(void)
{
    uint_8 Val_Counter1 = 10,Val_Counter2;
    Val_Counter2 = Val_Counter1 + 2;
    printf("%d",Val_Counter2);
}



程序的“=”是赋值操作,更改变量的当前值时可以使用赋值操作,两边的数据类型要相同,表示把右边操作数的值赋给左边操作数。“=”是最简单的赋值运算符。

除此之外,还有“-=”、“+=”、“*=”、“/=”、“|=”、“&=”、“%=”、“<<=”、“>>=”等。




#include <reg51.h>

int main()
{
   uint8_t a = 21,c;
   c =  a;
   printf("Line 1 - =  运算符实例,c 的值 = %d\n", c );
   c +=  a;
   printf("Line 2 - += 运算符实例,c 的值 = %d\n", c );
   c -=  a;
   printf("Line 3 - -= 运算符实例,c 的值 = %d\n", c );
}

使用特权

评论回复
地板
小夏天的大西瓜|  楼主 | 2023-12-16 11:42 | 只看该作者
3、C语言常用的数据类型

C语言的变量数据类型,大致可以分为如下几类:
基本数据类型,如整型、浮点型、字符型、布尔型等;
衍生数据类型,如指针型、数组型、结构体struct、共用体union等;
枚举类型enum,适用于枚举值有限,且变量初值自动递加;
空类型,void,这种容易被忽略,它表示无类型或者无返回值的函数;
typedef型,就是定义别名,可以给现有数据类型改名字,便于**和归类,和结构体合用比较方便;
常量,用const来表示;

几种常见的数据类型如 int、char、short、long、float、double等。
int,整型,至少占据2个字节;
char,字符型,至少占据1个字节;
short,短整型,至少占据2个字节;
long,长整型,至少占据4个字节;
float,浮点型;
long,双精度浮点型;

每种数据类型,都会占用不同的数据长度,但是因为编程环境/编译器的不同,每种类型的长度也不完全相同。只能说short 不会比 int 长, long 不会比 int 短。

对于整型数据类型而言,还有无符号整型,用unsigned来表示,变量加了unsigned之后,该变量的取值范围就从0开始、没有负数了。这在单片机编程中应用广泛。
unsigned char 的范围从 0 开始,至少到 255
unsigned int 的范围从 0 开始,至少到 65,535
unsigned short 的范围从 0 开始,至少到 65,535
unsigned long 的范围从 0 开始,至少到 4,294,967,295

因为数据类型有长度,所以在编程的时候需要注意变量的边界问题,不能让数据溢出。

各种类型的数据长度,其实是可以根据自己的编程环境/编译器进行测试的,用sizieof()就可以实现。

#include <stdio.h>
//计算数据类型的长度
int main(void) {
  printf("char size: %lu bytes\n", sizeof(char));
  printf("int size: %lu bytes\n", sizeof(int));
  printf("short size: %lu bytes\n", sizeof(short));
  printf("long size: %lu bytes\n", sizeof(long));
  printf("float size: %lu bytes\n", sizeof(float));
  printf("double size: %lu bytes\n", sizeof(double));
  printf("long double size: %lu bytes\n", sizeof(long double));
}

用C语言编程时,需要用到各种变量,而变量的命名规范也能反映出代码是否通俗易懂。所以,要想提高编程效率,先从变量命名规范和数据类型入手吧。

使用特权

评论回复
5
jf101| | 2023-12-19 09:54 | 只看该作者
要想提高编程效率,先从变量命名规范和数据类型入手

使用特权

评论回复
6
AdaMaYun| | 2023-12-19 09:57 | 只看该作者
unsigned char 的范围从 0 开始,至少到 255
unsigned int 的范围从 0 开始,至少到 65,535
unsigned short 的范围从 0 开始,至少到 65,535
unsigned long 的范围从 0 开始,至少到 4,294,967,295

使用特权

评论回复
7
LOVEEVER| | 2023-12-19 10:04 | 只看该作者
int,整型,至少占据2个字节;
char,字符型,至少占据1个字节;
short,短整型,至少占据2个字节;
long,长整型,至少占据4个字节;
float,浮点型;
long,双精度浮点型;

使用特权

评论回复
8
OKAKAKO| | 2023-12-19 10:11 | 只看该作者
C语言的变量数据类型这些是必须掌握的

使用特权

评论回复
9
小小蚂蚁举千斤| | 2023-12-19 10:42 | 只看该作者
各种类型的数据长度,其实是可以根据自己的编程环境/编译器进行测试的,用sizieof()就可以实现

使用特权

评论回复
10
中国龙芯CDX| | 2023-12-21 09:04 | 只看该作者
变量赋值这个是必须的

使用特权

评论回复
11
星辰大海不退缩| | 2023-12-21 12:35 | 只看该作者
程序的“=”是赋值操作,更改变量的当前值时可以使用赋值操作,两边的数据类型要相同

使用特权

评论回复
12
szt1993| | 2023-12-22 08:28 | 只看该作者
C语言的变量数据类型这些是基础的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

168

主题

1397

帖子

1

粉丝