首页 > 其他分享 >C语言----变量与强制类型转换(5)

C语言----变量与强制类型转换(5)

时间:2024-07-31 17:52:54浏览次数:14  
标签:类型转换 变量 int 局部变量 C语言 ---- 强制 全局变量

目录

1.变量

1.1 变量的创建

1.2 变量的分类 

1.3 变量的存储

2.强制类型转换


1.变量

1.1 变量的创建

前面我们已经了解了数据类型,我们使用类型做什么呢?

类型是用来创建变量

那么什么是变量呢?C语言中把经常变化的值称为变量,不变的值称为常量

变量创建的语法形式是这样的:

data_type name;

     |               |

     |               |

数据类型   变量名

int age;        //整型变量
char ch;        //字符变量
double weight;  //浮点型变量

 变量在创建的时候就给一个初始值,就叫初始化。

int age = 18;
char ch = 'w';
double weight = 48.0;
unsigned int height = 100;

1.2 变量的分类 

  • 全局变量:在大括号外部定义的变量就是全局变量,全局变量的使用范围更广,整个工程中想使用,都是有办法使用的。
  • 局部变量:在大括号内部定义的变量就是局部变量,局部变量的使用范围是比较局限,只能在自己所在的局部范围内使用的。
#include<stdio.h>

int gl = 2024;           //全局变量

int main()
{    
    int local = 2023;    //局部变量
    
    return 0;
                }

如果局部变量和全局变量的名字相同呢?

#include<stdio.h>

int n = 100;

int main()
{
    int n = 10;
    printf("%d\n",n);       //可以在VS上试试,看看打印结果是什么
    return 0;
                    }

 从打印结果可以看出,当局部变量和全局变量同名时,局部变量优先使用。

1.3 变量的存储

全局变量和局部变量在内存中存储在哪里呢?

⼀般我们在学习C/C++语言的时候,我们会关注内存中的三个区域:栈区、堆区、静态区。

  1. 局部变量是放在内存的栈区
  2. 全局变量是放在内存的静态区
  3. 堆区是用来动态内存管理的

2.强制类型转换

int a = 3.14
//a的类型是int类型,3.14是double类型,两边的类型不一致,编译器会报警告

//为了消除警告,我们可以使用强制类型转换

int a = (int) 3.14;
//意思是将3.14强制类型转换为int类型

俗话说,强扭的瓜不甜,我们使用强制类型转换都是万不得已的时候使用,如果不需要强制类型转化就能实现代码,这样自然更好的。

(以上介绍就完啦,祝大家学习愉快)

标签:类型转换,变量,int,局部变量,C语言,----,强制,全局变量
From: https://blog.csdn.net/2301_80414229/article/details/140827029

相关文章

  • 排序
    排序1.冒泡排序voidbubblesort1(int*arr,unsignedintlen){ //长度小于2就不用排序了 if(len<2)return; for(inti=0;i<len-1;i++){ for(intj=0;j<len-1-i;j++){ if(arr[j]>arr[j+1]) swap(arr[j+1],arr[j]); } }}//......
  • L1-006 连续因子
    暴力即可,考虑从2到sqrt(n)作为连续因子里的最小因子。//5'10"#include<iostream>usingnamespacestd;intmain(){intn;cin>>n;intres=1;intnum=n;for(inti=2;i<=n/i;++i){if(n%i!=0)continue;......
  • JSON格式说明
    JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScriptProgrammingLanguage,StandardECMA-2623rdEdition-December1999的一个子集。JSON的数据类型主要包括以下几种:对象(Object):在JSON中,对象是一个无序......
  • monitor paramiko
    #!/bin/bash#获取要监控的本地服务器IP地址IP=`ifconfig|grepinet|grep-vE'inet6|127.0.0.1'|awk'{print$2}'`echo"IP地址:"$IP#获取cpu总核数cpu_num=`grep-c"modelname"/proc/cpuinfo`echo"cpu总核数:"$cpu_num#......
  • 交叉编译工具链toolchain bin文件作用 gcc g++ ld ar as nm strip objdump
    前言全局说明交叉编译工具链toolchainbin文件作用gccg++ldarasnmstripobjdump一、说明二、bin文件功能arm-xxxx-linux-gcc #GNU的C语言编译器arm-xxxx-linux-g++ #GNU的C++语言编译器arm-xxxx-linux-cpp #GNU的C的预编译器arm-xxxx-linux-gcov #gcc的......
  • centos 7 各个目录的功能和用途是什么
    CentOS7的各个目录在Linux系统中扮演着重要的角色,它们各自具有特定的功能和用途。以下是CentOS7中一些主要目录的功能说明:1./(根目录)功能:包含了整个文件系统的所有文件和目录,是文件系统的起点。使用场景:任何时候都可以访问该目录下的文件和目录。2./bin功能:存放系统最......
  • echarts 地图 geojson 街道级别获取
    echarts地图geojson街道级别获取最近开发遇到需求是要制作echarts地图,原本制作echarts地图也并不难,但是偏偏我要制作街道级别的地图,难就难在如何获取geojson的数据。获取渠道目前遇到的最多的获取geojson的方法是通过阿里的地理工具去获取,https://datav.aliyun.com/por......
  • Day10
    重点总结类型转换由低到高的顺序:byte,short,char->int->long->float->double强制转换和被动转换同生物当中的被动运输和主动运输......
  • 最小二乘法拟合空间直线
    一、空间直线方程1.1一般方程空间直线可以看成成两个平面的交线,设两个平面方程分别为\(A_1x+B_1y+C_1z+D_1=0\)和\(A_2x+B_2y+C_2z+D_2=0\),则直线\(l\)的一般方程可以表示为:\(\left\{\begin{matrix}A_1x+B_1y+C_1+D_1=0\\A_2x+B_2y+C_2+D_2......
  • Ubuntu 安裝 RIME 輸入法
    RIME(RimeInputMethodEngine,中州韻,中州韵)是一款很火的輸入法,虽然我目前还不知道它为什么火,不过先用用再说。首先要吐槽一下RIME的说明文档,我感觉很不易读,第一次在macOS上尝试RIME的时候就被这说明文档劝退了,直接用了微信输入法。这次给自己的旧电脑安装Ubuntu,决定再次......