(章节目录)

在这里插入图片描述

前言

  哈喽,各位铁汁们好啊!✨今天来给大家带来的是初识C语言里面的数据类型变量。   今天主要带大家简单认识-一下C语言,俗话说没吃过猪肉,也见过猪跑。了解下每个数据类型是干嘛的。可以读懂C语言的简单程序,其他的博主就不多介绍了。   后面会为大家详细介绍 高阶知识,比如整形变量存储范围是怎么来的,他是怎么存储的等等········

一 、数据类型

1.1 什么是数据类型?

  大家都知道在数字没被发明之前人们是由结绳记事的,后来发明者数字 入人们就开始数字表示一个或者一些物品了,这些数字我们叫做数据。 而在C语言中想表示

  • 一个物品、或者一个人的名字、价格等······
  • 是表示数据的呢?

1.2 数据类型有哪些

在C语言中想表示一个物品的名字、价格、折扣就必须有数据类型 那C语言提供的数据类型有哪些呢?

  • 描述字符的有 char      //短整型
  • 描述整形有 short     //短整型 int       //整形 long      //长整型 long long    //更长的整形
  • 描述浮点数有 float         //单精度浮点数 double       //双精度浮点数
  1. C语言为什么有这么多类型呢?
  • 存在这么多的类型,其实是为了更加丰富的表达生活中的各种值。
  1. 每种类型的大小是多少?
  • 我们用sizof操作符来看一下每种类型是多大的。
  • sizof是C语言中用来计算 大小 的操作符。
#include <stdio.h>
int main()
{
    printf("%d\n", sizeof(char));
    printf("%d\n", sizeof(short));
    printf("%d\n", sizeof(int));
    printf("%d\n", sizeof(long));
    printf("%d\n", sizeof(long long));
    printf("%d\n", sizeof(float));
    printf("%d\n", sizeof(double));
    printf("%d\n", sizeof(long double));
    return 0;
}
  • 这里我们可以看到每个数据类型的大小1表示的是 1bit 在这里插入图片描述

在计算机中常见的单位 bit —— 比特位 bytc —— 子节

  • 这些单位之间的换算 1bytc = 8bit 1KB = 1024bytc 1MB = 1024KB 1GB = 1024MB 1TB = 1024GB 1PB = 1024TB 等等·······

所以一个字符char在C语言中占一个字节***8个bit位*** 整形int在C语言中占4个字节***32个比特位*** 其他各位读者们靠上面的程序图推算下。

  • 补充一点

在C语言标准中: ==sizeof(long long)>=sizof(long)>=sizof(int)>sizof(short)>sizof(char)== 所以long在不同位数的操作系统上有可能是4个字节或者8个但一定比int要大

二、变量

2.1变量的定义

变量的定义就是先写 类型名 在写变量名 之后给他赋值 在语言中等号是赋值的意思

char ch = 'w'; int weight = 120; int salary = 20000;

2.2变量的命名

  • 只能由字母(包括大写和小写)、数字和下划线( _ )组成。
  • 不能以数字开头。
  • 长度不能超过63个字符。
  • 变量名中区分大小写的。
  • 变量名不能使用关键字。 ==变量的命名我们尽量做到有意义==

我们来看几组示例: int  2*3; //这种就是错误的 int  2b; //err错误 int  _2b; //ok int  _2B; //ok int  char; //使用了关键字命 错误

2.3 变量的分类

上次我们讲了变量的命名但没有讲使用 在使用变量我们需要用到2个库函数

//scanf
//printf
//库函数 - C语言的编译器提供的现成的函数,直接可以使用
//scanf的作用是输入数据,数据从键盘读取到内存中
//printf的作业是输出数据,数据从内存打印(输出)到屏幕上
//使用的时候要包含头文件stdio.h
#include <stdio.h>
// %c - 字符
// %d - 整型
// %s - 字符串
// %f - float
// %lf - double
// %p - 地址的打印
int main()
{
	int a = 0;
	scanf("%d", &a);
	printf("%d", a);
	char ch = 0;
	scanf("%c", &ch);
	printf("%c", ch);
	return 0;
}

这里&这个符号是取地址操作符表示把我们输入的结果放到a变量的地址里面。 %d是表示10进制scanf里面使用就是输入的是10进制整数读取的。

全局变量

定义在main()函数外面的变量我们称为 全局变量 即在程序中所有人都可以调用使用它并不是很安全。 下面我们演示一下全局变量的使用和为什么不安全。 这里我们使用了***函数***调用它

int a = 2023;
//函数的定义void是空的意思,由于我们只是打印不返回值所以这里
//函数的返回值为空 test()是函数名
void test()
{
	printf("2---> %d\n", a);
}

int main()
{
	a = 2022;//为什么说他不安全呢?因为我们不管是谁它都可以
	//修改全局变量的值
	printf("1---> %d\n", a);//在main函数调用
	test();//函数调用就是写上函数名然后给上分号;

	return 0;
}

而在一个工程中有很多.C文件那么在其他文件定义的全局变量 我们该怎么使用+ 只需要***声明***一下这个全局变量我们就可以使用了

//需要声明外部符号
extern int g_val;//只需要声明一下这个变量就可以使用了
int main()//extern 是声明的意思
{
	printf("%d\n", g_val);
	return 0;
}

局部变量

在一对大括号里面的或者我们可以叫做程序段里面定义的我们可以叫做局部变量

int main()
{
	int a = 0;
	return 0;
}

这里的变量a就是局部变量

  • 那么当局部变量全局变量同名的情况下又会怎么样呢?
  • C语言规定当局部变量和全局变量同名时局部优先
  • 下面我们来举个例子
int a = 6;
int main()
{
	int a = 12;
	printf("%d",a);
	return 0;
}

大家猜一下这个代码会输出多少呢?

总结

好了今天主要是带大家认识数据类型和变量 总结一下今天学了:   数据类型有哪些?   变量的定义   变量的命名规则   变量的使用   全局变量   局部变量 希望对各位读者有用呢! 看到这里了还不给博主扣个点赞收藏! 💛 💙 💜 ❤️ 💚💓 💗 💕 💞 💘 💖 哈哈哈感谢大家嘞。你们的点赞就是博主更新最大的动力! 有问题可以评论或者私信呢秒回哦。 在这里插入图片描述