首页 > 其他分享 >03-变量和数据类型

03-变量和数据类型

时间:2023-03-11 14:14:28浏览次数:44  
标签:03 定义 变量 10 int 数据类型 内存 常量

变量和数据类型

所有定义的变量都存在内存中,定义变量需要内存空间,不同类型的变量需要的内存空间是不同的
数据类型作用:告诉编译器,我这个数据在内存中需要多大的空间,编译器预算对象(变量)分配的内存空间大小。

1.常量与变量

1.1 常量

常量:程序运行中不能改变的量

  • 整型常量:1 200
  • 字符常量: 'c'
  • 字符串常量:"hello"
  • 实型常量(浮点型常量):3.14,0.125
整型常量 100,200,-100,0
实型常量 3.14 , 0.125,-3.123
字符型常量 ‘a’,‘b’,‘1’,‘\n’
字符串常量 “a”,“ab”,“12356”

1.2 变量

1. 变量的空间大小
变量:程序运行中可以被改变的量,存在于内存中

  • 变量需要定义,变量的定义:在内存中开辟空间,告诉编译器我有这个变量(声明),变量定义的本质:在内存中开辟空间,给这个空间取名**
  • 数据类型 变量名(数据类型告诉编译器占多大的空间)
  • int类型在内存中占4字节
  • short类型在内存中占2字节
  • long类型,在windows中都是4字节,linux中,32位系统4字节,64位系统8字节
  • char类型在内存中占1个字节
  • float类型在内存中占4字节,用于存储小数(float精度能达到7位小数)
  • double类型在内存中占8字节(double精度能达到15位小数)
    char short int long都可以用来存储整数
int a; // 在内存中定义了一个变量a,占int类型大小4个字节
char b; // 在内存中定义了一个变量b,占一个字节

2. 变量的命名规则

  • 定义变量时,变量名必须以字符和下划线开头,不能以数字开头
  • 变量取名不能为关键字
  • 变量取名的时候要顾名思义
  • 变量定义时要区分大小写
    变量定义的本质:在内存中开辟空间,给这个空间取名
  • extern 数据类型 变量名--告诉编译器有这个变量,但是这里不开辟空间
        int num;
	num = 100;
	//int num = 200; 定义变量并且初始化 
	printf("num = %d\n", num);
	return 0;//成功完成
        extern short SUM;  // extern 告诉编译器我有这个变量,没有定义,不能进行赋值
                           // 声明有SUM,并没有开辟空间,只有在定义的时候开辟空间
                           // 定义可以在其他.c文件中定义变量或者main函数外的位置等
#define MAX 10  // MAX相当于一个常量

MAX = 100; // 报错,MAX是一个常量,常量不可以被更改

3. 变量的特点

  • 变量在编译时为其分配相应的内存空间
  • 可以通过其名字和地址访问相应的内存

4. 声明和定义的区别

  • 声明变量不需要建立存储空间,如:extern int a;
  • 定义变量需要建立存储空间,如:int b;
#include <stdio.h>

int main()
{
	//extern 关键字只做声明,不能做任何定义,后面还会学习,这里先了解
	//声明一个变量a,a在这里没有建立存储空间
	extern int a;
	a = 10;	//err, 没有空间,就不可以赋值

	int b = 10;	//定义一个变量b,b的类型为int,b赋值为10

	return 0;
}

从广义的角度来讲声明中包含着定义,即定义是声明的一个特例,所以并非所有的声明都是定义:

  • int b 它既是声明,同时又是定义
  • 对于 extern b来讲它只是声明不是定义

一般的情况下,把建立存储空间的声明称之为“定义”,而把不需要建立存储空间的声明称之为“声明”。

#include <stdio.h>
#define MAX 10 //声明了一个常量,名字叫MAX,值是10,常量的值一旦初始化不可改

int main()
{
	int a;	//定义了一个变量,其类型为int,名字叫a

	const int b = 10; //定义一个const常量,名为叫b,值为10
	//b = 11; //err,常量的值不能改变

	//MAX = 100;	//err,常量的值不能改变

	a = MAX;//将abc的值设置为MAX的值
	a = 123;

	printf("%d\n", a); //打印变量a的值

	return 0;
}

1.3 关键字

1.4 const修饰的变量

const关键字修饰的变量不能被更改

#include <stdio.h>

int main()
{
	int a;	//定义了一个变量,其类型为int,名字叫a

	const int b = 10; //定义一个const常量,名为叫b,值为10
	//b = 11; //err,常量的值不能改变
	return 0;
}

const修饰的变量b,告诉编译器,不能通过b(变量名)修改这块空间的内容,但是可以通过地址进行修改

2.进制

标签:03,定义,变量,10,int,数据类型,内存,常量
From: https://www.cnblogs.com/Icer-newer/p/17205713.html

相关文章

  • lc203.移除链表元素
    题目给你一个链表的头节点head和一个整数val,请你删除链表中所有满足Node.val==val的节点,并返回新的头节点。示例输入:head=[1,2,6,3,4,5,6],val=6输出:[......
  • 连网技术与网络管理 2023-03-11
    交换机DHCP防护,防止一个局域网里面,有2个DHCP误接入第二个路由器,就会导致多个DHCP.DHCP是应用层的协议  Wireshark分析DHCP_琳小白的博客-CSDN博客 IP地址,网络地......
  • Java基础 - 基本数据类型,基本数据类型之间的运算规则,引用数据类型
    基本数据类型:1.整数类型 类型:byte,short,int,long字节:byte1字节,short2字节,int4字节,long8字节容量:byte-128~127,short-3万~3万左右,-20亿~20亿左右,long特别大默认字......
  • Nginx基础 - 03基本配置
     一、Nginx配置文件结构Nginx主配置文件/etc/nginx/nginx.conf是一个纯文本类型的文件。整个配置文件是以区块的形式组织的。一般,每个区块以一对大括号{}来表示开始于......
  • [Go语言Web03]GORM数据库操作
    1.GORM连接MySQL1.1ORM1.1.1什么是ORM1.1.2ORM优缺点优点:提高开发效率缺点:牺牲执行性能牺牲灵活性弱化SQL能力1.2GROM官方文档执行下面命令安装GRO......
  • 解析JAVA环境变量及配置
    写在前面:参考CSDN博主-StandByMeQuan文章:https://blog.csdn.net/qq_37872792/article/details/80642985其实博主已经写得很好了,但是我怕到时后该博文被删了,无法......
  • 2023.03.11.函数重载,引用等
    程序生成的过程:1.预处理:头文件的展开宏的替换预处理指令解析去掉注释2.编译:预处理后文件生成汇编文件.asm(汇编代码)词法解析,语法解析语义分析优化3.汇编:汇编文件进一......
  • Shader 入门:GLSL ES(数据类型)
    在上一篇文章中我们初步了解了GLSLES的基本语法,那么本篇文章就和大家一起学习GLSLES的数据类型。Let’sgo!!!上一篇:《Shader入门:GLSLES(简介和基本语法)》在本系......
  • 2023.03.11.命名空间
    c++命名空间为了区分不同库中相同名称的函数、类、变量等命名空间的定义使用关键字namespace,后跟命名空间的名称,如下所示:namespacenamespace_name{//代码声明}为......
  • 程序设计应用 2023-03-11
     DjangodoessupporttheModel-View-Controller(MVC)architecturalpattern.However,DjangousesaslightlydifferentapproachcalledModel-View-Template(MV......