精华内容
下载资源
问答
  • 常量和变量

    2016-02-16 21:40:18
    常量:  固定的数据 四类:整型 浮点型(单精度和双精度) 字符型 字符串型 字符型常量:不能是中文,单引号引起来的 字符串型常量:双引号引起来的 变量:  表示一个需要经常改变或者不确定的数据 特点:  1....

    常量:

           固定的数据

    四类:整型     浮点型(单精度和双精度)     字符型     字符串型

    字符型常量:不能是中文,单引号引起来的

    字符串型常量:双引号引起来的


    变量:

          表示一个需要经常改变或者不确定的数据

    特点:

         1. 创建了一个变量相当于在内存中占用了一片空间

         2. 空间的大小是固定的,但里面的数据可以改变

         3.同一个作用域内不能有相同的变量名.在不同作用域内没有问题

         4.初始化时创建,在函数作用域执行完后失效,且内存空间释放.

    作用域:

         作用域可以嵌套作用域

    1.不同函数属于平行作用域,作用域没有干扰.

    2.同一个函数下的作用域可以有多个.

    嵌套作用域:子作用域内部创建变量跟外部没有关系,但是可以用外部的变量(就近原则).

    3.子作用域定义的变量只在本作用域内有效,在父作用域内是用不了的.

    优点:灵活控制内存


    变量内存分析

    1.内存基本单位是字节.

    2.变量内存分配与赋值与否没有关系

    3.不同类型的数据变量在不同编译环境下的占用内存空间大小是不一样的.

      16位编译器 32位编译器 64位编译器
    char 1 1 1
    int 2 4 4
    float 4 4 4
    double 8 8 8

    4.当前环境占用内存字节数sizeof(数据类型),打印占位用lu

    5.内存由地址从大到小寻址,优先分配内存地址较大的字节给变量

    6.在变量未经初始化赋值之前,不要使用变量的值.


    展开全文
  • C语言常量和变量

    千次阅读 2019-07-31 10:55:48
    对计算机来说,图片、文字、音乐、视频等都是数据,在计算机中以二进制的01存储,数据量越大,01就越多。 数据分为静态数据动态数据。 我们编写程序的目的就是告诉计算机如何输入、处理、传输、存储...

     

    一切都是数据

           对计算机来说,图片、文字、音乐、视频等都是数据,在计算机中以二进制的0和1存储,数据量越大,0和1就越多。

           数据分为静态数据和动态数据。

           我们编写程序的目的就是告诉计算机如何输入、处理、传输、存储和展示数据。

    1、静态数据

           永久性的数据,一般存储在硬盘中,只要硬盘没坏数据都是存在的,电脑关机重启后依然存在。

    2、动态数据(临时数据)

           程序运行过程中,动态产生的的临时数据,一般存储在内存中,软件退出或者电脑关机时这些临时数据会被清除。

           为什么不把动态数据存放到硬盘?因为访问内存的速度访问硬盘快很多倍。但是,与硬盘相比,内存的存储空间比较小。

    3、数据大小

           1)数据都是由二进制的0和1组成。

           2)数据都会占用空间,静态数据占硬盘空间,动态数据占内存空间。

           3)数据占用空间的最小单位是比特(bit)。一个1或者0就是一个比特,即1bit。

           4)计算机中,以字节为单位存储数据。1字节=8比特(1Byte=8bit)。

                  1PB=1024TB,1TB=1024GB,1GB=1024MB,1MB=1024KB,1KB=1024B,1B=8bit。

    常量

           常量即常数,表示固定的数据。

           1)字符常量    如'6','a','F'(不能是中文,例如:'男',因为一个汉字和全角的符号占两个字节。)

           2)整型常量    如6,27,-299

           3)浮点型常量  如5.43,-2.3,5.67,6.0

           4)字符串常量  如"625","女","nanabc","西施"

    变量

           如果数据的值是不确定的,或者经常需要改变,或者临时取值的,则用变量来存放。

           常量是指具体的数据,变量是用于存放数据的容器,称呼上只差一个字,但不是兄弟关系,而是水与水桶的关系。

           变量使用前必须先进行声明(或定义)。向系统申请一块内存空间给变量,用于存放数据。如果要定义多个变量向系统申请多块内存空间。

    1、整数型、字符型、浮点型变量的定义

           变量的定义,也称之为变量的声明,或定义变量,或声明变量,这些都是程序员的习惯叫法,实际上都是同一个意思。

           定义整数型变量用关键字int,它是单词integer(整数)的缩写。

                    int   ii;           // 定义整数型变量,用于存放整数。

           定义字符型变量用关键字char,它是单词character(字符)的缩写。

                    char  cc;          // 定义字符型变量,用于存放字符。

           定义浮点型变量用关键字double,是一个完整的单词,双精度,很精确的意思。

                    double money;   // 定义浮点型变量,用于存放浮点数。

    2、字符串变量的定义

           在C语言中,没有“字符串”这个数据类型,而是用字符数组来表达字符串,并提供了丰富的库函数来操作字符串。

           char name[21];       // 定义一个可以存放20字符的字符串。

           各位先注意几个要点:

           1)如果要定义一个存放20个英文的字符串,数组的长度应该是20+1,原因以后再讨论。

           2)一个中文汉字或全角的标点符号需要两个字符宽度来存放。

           例如name[21]可以存放20个英文字符,或10个中文字符。

           3)字符串不是C语言的基本数据类型,不能用“=”赋值,不能用“>”和“<”比较大小,不能用“+”拼接,不能用==和!=判断两个字符串是否相同,要用函数,具体方法我以后再介绍,现在了解就可以。

    3、变量的命名

           变量名属于标识符,需要符合标识符的命名规范,如下:

           1)变量名的第一个字符必须是字母或下划线,不能是数字和其它字符。

           2) 变量名中的字母是区分大小写的。比如 a 和 A 是不同的变量名,num 和 Num 也是不同的变量名。

           3)变量名绝对不可以是C语言关键字。

           关于变量的命名,为了便于理解,尽可能用英文单词或多个英文单词的简写,不要太长,太长了书写麻烦,如果英语不好,那就用中文拼英的第一个字母,例如身份证号码,cardid、userid都可以,sfzhm也行,不要怕被笑话,中国的程序员英语不好的多了去。

    关键字

           关键字也称为保留字,共32个,也就是说这些单词在C语言中有特别的含义,程序员不能把它用于变量或函数的命名。

           auto :声明自动变量

           break:跳出当前循环

           case:开关语句分支

           char :声明字符型变量或函数返回值类型

           const :声明只读变量

           continue:结束当前循环,开始下一轮循环

           default:开关语句中的“默认”分支

           do :循环语句的循环体

           double :声明双精度浮点型变量或函数返回值类型

           else :条件语句否定分支(与 if 连用)

           enum :声明枚举类型

           extern:声明变量或函数是在其它文件或本文件的其他位置定义

           float:声明浮点型变量或函数返回值类型

           for:一种循环语句

           goto:无条件跳转语句

           if:条件语句

           int: 声明整型变量或函数

           long :声明长整型变量或函数返回值类型

           register:声明寄存器变量

           return :子程序返回语句(可以带参数,也可不带参数)

           short :声明短整型变量或函数

           signed:声明有符号类型变量或函数

           sizeof:计算数据类型或变量长度(即所占字节数)

           static :声明静态变量

           struct:声明结构体类型

           switch :用于开关语句

           typedef:用以给数据类型取别名

           unsigned:声明无符号类型变量或函数

           union:声明共用体类型

           void :声明函数无返回值或无参数,声明无类型指针

           volatile:说明变量在程序执行中可被隐含地改变

           while :循环语句的循环条件

           C语言的关键字无需背诵,如果你程序用不小心用了关键字给变量命名,编译时会报错,用多了就熟悉了。

    变量的初始化

           在main函数内部定义的变量称为局部变量,局部变量被定义后,系统不会对其初始化,你必须写程序对其初始化。

    1、整数型、字符型、浮点型变量初始化

           对整数型、字符型、浮点型变量来说,初始化就是给它们赋0值。

           可以在定义的时候立即初始化。

                    int   ii=0;           // 定义整数型变量并初始化

                    char  cc=0;          // 定义字符型变量并初始化

                    double money=0;   // 定义浮点型变量并初始化

           也可以先定义,然后再初始化。

                    int   ii;           // 定义整数型变量

                    char  cc;          // 定义字符型变量

                    double money;   // 定义浮点型变量

                    ii=0;              // 初始化ii为0

                    cc=0;             // 初始化cc为0

                    money=0;        // 初始化money为0

    2、字符串变量的初始化

           对字符串变量来说,初始化就是把内容清空。

                  char name[21];       // 定义一个可以存放20字符的字符串

                  memset(name,0,sizeof(name));   // 清空字符串name中的内容

           注意了,字符串变量的初始化与其它类型不同,要用memset函数,先不要问为什么,就这么抄,以后再解释,你也不必花时间和精力去研究,没有必要浪费时间。

    3、未初始化的变量示例

           变量初始化是一个良好的编程习惯,否则有时候程序可能会产生意想不到的结果。

           未初始化的变量会导致在内存中可能有垃圾值。

           示例(book9.c)

          

           运行结果

          

           大家注意,在上图中,局部变量ii和name中是值乱七八糟的垃圾值。

    4、初始化后的变量示例

           示例(book10.c)

          

           运行结果

          

           大家注意,在上图中,变量值被清0,没有任何垃圾值。

    变量的赋值

           把常量的值赋给变量:

                    ii=10;                // 整数型变量赋值10

                    cc='A';               // 字符型变量赋值'A'

                    money=1500.87;     // 浮点型变量赋值1500.87

                    strcpy(name,"西施");  // 对字符串变量赋值"西施"

           把变量的值赋给变量:

                    int ii1=ii;                 // 定义变量ii1并把ii的值赋给它

                    char cc1=cc;             // 定义变量cc1并把cc的值赋给它

                    double money1=money; // 定义变量money1并把money的值赋给它

                    char name1[21];         // 定义字符串变量name1

                    strcpy(name1,name);     // 把name的值赋给name1

           注意了,字符串变量的赋值与其它类型不同,不能用=号,要用strcpy函数,先不要问为什么,就这么抄,以后再解释,你也不必花时间和精力去研究,没有必要浪费时间。

           示例(book11.c)

          

           运行结果

          

    多变量操作

    1、多个变量的定义

           定义多个变量有以下方法。

                  int ii;

                  int jj;

           也可以书写为一行,如下:

                  int ii,jj;

    2、多个变量的赋值

           整数、字符和浮点型变量可以用一个语句对多个变量赋相同的值,如果要赋不同的值,只能用多条语句了。

                  ii=jj=10;     // 对ii和jj赋相同的值10

                  ii=jj=30;     // 对ii和jj赋相同的值30

                  ii=10;       // 对ii赋值10

                  jj=30;       // 对jj赋值30

           不论值是否相同,一条语句只能对一个字符串变量变量赋值。

                  strcpy(name,"西施");   // 对字符串变量name赋值"西施"

                  strcpy(name1,"西施");  // 对字符串变量name1赋值"西施"

                  strcpy(name,name1,"西施");   // 这是个天才的想法,但行不通,不符合strcpy函数的语法。

    const约束

           const 是 constant 的缩写,意思是“恒定不变的”!它是定义只读变量的关键字,或者说 const 是定义常变量的关键字。用 const 定义常变量的方法很简单,就在通常定义变量时前面加 const 即可,如:

           const  double  pi = 3.1415926;

           用 const 定义的变量的值是不允许改变的,即不允许给它重新赋值,即使是赋相同的值也不可以。所以说它定义的是只读变量。这也就意味着必须在定义的时候就给它赋初值,如果程序中试图改变它的值,编译的时候就会报错。

           示例:

           

    版权声明

    C语言技术网原创文章,转载请说明文章的来源、作者和原文的链接。

    来源:C语言技术网(www.freecplus.net

    作者:码农有道

    如果这篇文章对您有帮助,请点赞支持,或在您的博客中转发我的文章,谢谢!!!

    如果文章有错别字,或者内容有误,或其他的建议或意见,请您留言指正,非常感谢!!!

     

     

    展开全文
  • 日期时间 &常量和变量

    千次阅读 2019-11-18 20:41:35
    在MATLAB中,很多处理日期时间的函数。 函数 说明 clock() 当前时间,返回日期的向量 now() 双精度表示当前的日期时间 date() 当前日期 weekday() 星期几,返回值包括星期的数字星期的字符串 ...

    MATLAB程序加不加分号?

    语句结尾加分号时,运行结果在命令窗口不显示;
    不加分号时,当点击回车时,运行结果就会立即显示出来。

    运行matlab程序的时候,程序中变量的值会自动储存在 workspace中。程序命令后面输入与不输入“;”的区别是,当输入半角的分号时,命令中的变量会自动列表储存在 workspace中,变量的值不会在window command中显示出来;当不输入半角的分号时,变量不仅也会自动储存在workspace中,还会在window command窗口中显示出变量的值。

    日期和时间

    在MATLAB中,有很多处理日期和时间的函数。

    函数说明
    clock()当前时间,返回日期的向量
    now()双精度表示当前的日期和时间
    date()当前日期
    weekday()星期几,返回值包括星期的数字和星期的字符串
    eomday()返回一个月的最后一天
    calendar()返回日历
    datestr()向量转化为日期字符串
    datenum()日期字符串和日期向量转化为数字
    datevec()将日期数字和字符串转化为日期向量
    a=clock		%当前日期的向量		1.0e+03 *2.0190    0.0110    0.0180    0.0200    0.0430    0.0562
    b=date		%当前日期的字符串		'18-Nov-2019'
    c=now		%双精度表示的当前日期		7.3775e+05
    d='18-Nov-2019'
    calendar(d)			%返回日历
    calendar(2020,1)	%返回指定时间的日历
    
    t1=datestr(now)					%返回当前日期和时间字符串
    t2=datestr(now,'dd-mmm-yyyy')	%返回当前日期的固定格式
    t3=datestr(now,1)				%和上面一样
    t4=datestr(now,'HH:MM:SS')		%返回当前时间
    t5=datestr(now,13)				%和上面一样
    

    日期和时间的格式转换

    函数说明
    tic/toc函数tic启动秒表,toc停止秒表,计算函数或程序运行时间
    cputime返回用秒表示的、从当前MATLAB启动之后所用的CPU时间,单位为s
    etime(t1,t0)返回参数和之间的时间,单位为s
    tic
    for i=5:12
        a=inv(pascal(i));		%获取帕斯卡矩阵的逆矩阵
        t(i-4)=toc;
    end
    figure;
    plot(5:12,t);
    xlabel('阶数');
    ylabel('时间/秒');
    

    运行结果:
    在这里插入图片描述

    t=clock
    for i=1:1000			%采用循环
        v(i)=exp(i);
    end
    t1=etime(clock,t)		%进行计时
    clear all;
    t=clock
    i=1:1000;				%采用矢量
    y(i)=exp(i);
    t2=etime(clock,t)		%进行计时
    
    运行结果:
    t =
    
       1.0e+03 *
    
        2.0190    0.0110    0.0190    0.0170    0.0370    0.0181
    
    
    t1 =
    
        0.0030
    
    
    t =
    
       1.0e+03 *
    
        2.0190    0.0110    0.0190    0.0170    0.0370    0.0181
    
    
    t2 =
    
       1.0000e-03
    
    t=cputime
    i=1:1000000
    y(i)=exp(i);
    t1=cputime-t
    

    常量和变量

    在MATLAB中,用inf或INF表示无穷大。MATLAB允许的最大数是21024,超过这个数,就被认为是无穷大。例如,在命令行窗口输入1/0,则显示警告信息,返回值为无穷大inf。
    系统默认的常量:

    常量说明
    ANS或ans默认变量名,保存最后一次运算的结果
    pi圆周率
    INF或inf无穷大
    NaN或nan0/0
    realmax最大的正实数
    realmin最小的正实数
    eps浮点数的相对误差
    i或j复数单位,-1的平方根
    nargin函数的输入参数个数
    nargout函数的输出参数个数
    varargin可变的函数的输入参数个数
    varargout可变的函数的输出参数个数
    beep使计算机发出“嘟嘟”声

    变量命名规则:

    1. 变量名长度不超过31个字符,超过的字符系统忽略不计;
    2. 变量名区分大小写;
    3. 变量名必须以字母开头,变量名可以包含字母、数字、下划线。
    展开全文
  • C语言 常量变量

    千次阅读 2016-01-11 09:31:52
    在我们使用计算机的过程中,会接触到各种各样的数据,文档数据、图片数据、视频数据,还有聊QQ时产生的文字数据、用迅雷下载的文件数据等。这讲我们就来介绍C语言中数据的处理。 一、数据的存储 1.数据...

    在我们使用计算机的过程中,会接触到各种各样的数据,有文档数据、图片数据、视频数据,还有聊QQ时产生的文字数据、用迅雷下载的文件数据等。这讲我们就来介绍C语言中数据的处理。

    一、数据的存储

    1.数据类型

    首先来看看计算机是怎么存储数据的。总的来说,计算机中存储的数据可以分为两种:静态数据和动态数据。

    1> 静态数据

    概念:静态数据是指一些永久性的数据,一般存储在硬盘中。硬盘的存储空间一般都比较大,现在普通计算机的硬盘都有500G左右,因此硬盘中可以存放一些比较大的文件。

    存储的时长:计算机关闭之后再开启,这些数据依旧还在,只要你不主动删掉或者硬盘没坏,这些数据永远都在。

    哪些是静态数据:静态数据一般是以文件的形式存储在硬盘上,比如文档、照片、视频等。

     

    2> 动态数据

    概念:动态数据指在程序运行过程中,动态产生的临时数据,一般存储在内存中。内存的存储空间一般都比较小,现在普通计算机的内存只有4G左右,因此要谨慎使用内存,不要占用太多的内存空间。

    存储的时长:计算机关闭之后,这些临时数据就会被清除。

    哪些是动态数据:当运行某个程序(软件)时,整个程序就会被加载到内存中,在程序运行过程中,会产生各种各样的临时数据,这些临时数据都是存储在内存中的。当程序停止运行或者计算机被强制关闭时,这个程序产生的所有临时数据都会被清除。

    你可能会问:既然硬盘的存储空间这么大,为何不把所有的应用程序加载到硬盘中去执行呢?有个主要原因是内存的访问速度比硬盘快N倍。

     

    3> 动态数据和静态数据的转换

    硬盘和内存是计算机使用最频繁的两个硬件,它们之间的数据经常要进行转换。

    比如,硬盘上有个叫做“C语言.mp4”的视频文件,现在要使用暴风影音来播放

    首先打开暴风影音软件,计算机会将暴风影音加载到内存中,紧接着计算机会读取硬盘中视频文件的内容到内存中。暴风影音会解析读取到的文件内容,以视频的形式呈现给用户看。这就完成了一个由静态数据动态数据的转换。

     

    再比如,你使用迅雷从网上下载一个叫做“C语言.mp4”的视频文件

    首先打开迅雷软件,计算机会将迅雷加载到内存中,紧接着迅雷就会从互联网下载视频文件。大家都知道,这个下载过程肯定是要耗点时间的,主要受文件大小和下载速度的影响。每个时间段内下载获取的数据都是先放到内存中,然后再写入到硬盘中。所有数据下载完毕后,硬盘中就会有一个完整的视频文件。这就完成了动态数据静态数据的转换。

     

    2.存储形式

    1> 二进制存储

     在前面的文章中说过,计算机只能识别0和1。因此,前面所说的静态数据和动态数据,都是以0和1的形式存储的,这种存储方式称为“二进制存储”。有人可能觉得很诧异,只是0和1怎么可能表示这多的数据呢?没错,如果只是一位数字的话,只能表示2种数据:要么是0,要么是1。但是如果有多位数字的话,那情况就不一样了。如果有2位数字,那么就能表示4种数据:00、01、10、11;如果有3位数字呢,就能表示8种数据;以此类推,如果有n位数字,就能表示2的n次方种数据。可以发现,只要位数足够,0和1所能表示的数据是非常庞大的。

     

    2> 比特位和字节

    * 平时我们在计算机上看到的MP4、MP3、照片等文件,都是由0和1组合成的,只不过计算机解析了这些0和1,以图形界面的形式呈现在我们眼前。文件越大,所包含的0和1就越多,为了方便计算文件大小,对计量单位做了个规定:1个二进制位为1bit,也就是1个0或1就为1bit,bit的中文翻译是“比特位”;8个二进制位为1byte,也就是8个0或1就为1byte,1byte=8bit,byte的中文翻译是“字节”。平时我们所说的某个文件大小为64B,就是64字节的意思,内部包含了64x8个0和1。

    * 还有一些需要了解的计量单位:

    1 KB = 1024 B,1 MB = 1024 KB,1 GB = 1024 MB,1 TB = 1024 GB

    * 在Mac上查看某个mp4文件的大小:

    26.2 MB = 26.2 x 1024 KB = 26.2 x 1024 x 1024 B(字节)

     

    二、数据类型

    作为程序员,最关心的肯定是内存中的动态数据,因为我们写的程序就是运行在内存中的。程序在运行过程中,会产生各种各样的动态临时数据,为了方便数据的运算和操作,C语言对这些数据进行了分类,提供了丰富的数据类型。大致如下图所示:

    * 在图中众多数据类型中,最常用的是4种基本数据类型:char、int、float、double,而最重要的是指针类型,指针使用得当的话,不仅可以节省代码量,还可以优化内存管理、提高性能。因此,指针是一个非常重要的概念,必须重视。如果你说C语言中除了指针,其他都学得挺好的,那你干脆说你没学过C语言。

    * 这些丰富的数据在C语言中可以用常量或者变量来表示。接下来就介绍一下常量和变量的使用。

     

    三、常量

    1.什么是常量

    "量"表示数据。常量,则表示一些固定的数据,也就是不能改变的数据

     

    2.常量的类型

    在C语言中,常量大致可以分为以下类型:

    1> 整型常量(int)

    其实就是int类型的数据,包括了所有的整数,比如6、27、109、256、-10、0、-289等

     

    2> 浮点型常量(float\double)

    浮点型常量分为double和float两种数据类型

    • double:双精度浮点型,其实就是小数。比如5.43、-2.3、0.0等,注意,0.0也算是个小数。
    • float:单精度浮点型,也是小数,比double的精确程度低,也就是说所能表示的小数位数比较少。为了跟double区分开来,float型数据都是以f结尾的,比如5.43f、-2.3f、0.0f。需要注意的是,绝对不能有10f这样格式的,编译器会直接报错,只有小数才允许加上f。

     

    3> 字符常量(char)

    • 一个数字(0~9)、英文字母(a~z、A~Z)或者 其他符号(+、-、!、?等)用单引号括起来,这样构成的就是字符常量。比如'6'、'a'、'F'、'+'、'$'等。
    • 注意:单引号只能括住1个字符,而且不能是中文字符,下面的写法是错误的:'abc'、'123456'、'男'

     

    4> 字符串常量

    • 一个或者多个字符用双引号("")括起来,这样构成的就是字符串常量。比如"6"、"男"、"哇哈哈"、"abcd"、"my_car4",其实printf("Hello World");语句中的"Hello World"就是字符串常量。
    • 那究竟6、'6'、"6"在用法上有什么区别呢?这个先不作讨论,以后会介绍。

     

    三、变量

    1.什么是变量

    常量表示的数据是不可以改的,而用变量表示的数据是可以经常修改的。比如游戏中主角的生命值就可以用一个变量来表示,主角受到伤害后,生命值就会减少,主角接受治疗后,生命值就会增多,在游戏过程中,主角的生命值一直都在改变,因此主角的生命值应该用一个变量来表示。总结一句话:当一个数据的值需要经常改变或者不确定时,就应该用变量来表示。

     

    2.变量的定义

    任何变量在使用之前,必须先进行定义。定义变量的目的是:在内存中分配一块存储空间给变量,方便以后存储数据。如果定义了多个变量,就会为这多个变量分别分配不同的存储空间。

    1> 变量类型

    * 计算机的内存是有限的,现在普通计算机的内存有4G,那么定义一个变量的时候分配多少存储空间给这个变量呢?是4G全部给它么?这很显然不可能,如果把4G的存储空间全部给了这个变量,那就意味着不能再分配空间给其他变量,而且系统也会瘫痪,因为内存不够用了,无法再运行其他程序。因此,我们在定义变量的时候,需要指明变量类型,系统会根据变量类型来分配相应的存储空间。不同数据类型所占用的存储空间是不一样的,如果是字符型(char)变量,就分配1个字节的存储空间;如果是整型(int)变量,就分配4个字节的存储空间。

    * 变量类型的还一个作用是用来约束变量所存放数据的类型。一旦给变量指明了类型,那么这个变量就只能存储这种类型的数据,比如整型(int)变量只能存储整型数据,不能存储浮点型数据。

     

    2> 变量名

    在程序运行过程,肯定会定义大量的变量,每个变量都有自己的存储空间。那怎么区分这些变量呢?怎么找到变量对应的存储空间呢?为了区分这些变量,定义变量的时候应该为每个变量指定一个变量名,变量名也是标识符的一种。当我们要修改变量的数据时,系统会根据变量名找到变量对应的存储空间,将存储空间里面的数据改掉。

     

    3> 定义

    总结可得,定义变量需要2个条件:变量类型、变量名。定义变量的格式为:变量类型  变量名;

    复制代码
    1 int main()
    2 {
    3     int i;
    4     
    5     char c;
    6     
    7     return 0;    
    8 }
    复制代码

    由于C程序的入口是main函数,因此暂时把定义变量的代码都写在了main函数中。在第3行定义了一个名字为i的整型变量,说明i只能存储整型数据;在第5行定义了一个名字为c的字符型变量,说明c只能存储字符型数据。第3、5、7行的代码都称为“语句”,每条语句后面都有个分号;。

    于是,系统就会在内存中分别为变量i、c分配一定的存储空间,如下图所示,i和c各占用一块存储空间。至于究竟占用多少字节的存储空间呢,暂时不用去研究,后面会介绍。

     

    如果是同一种类型的变量,可以连续定义,变量名之间用逗号,隔开。格式为:变量类型  变量名1, 变量名2, 变量名3, ... ;

    复制代码
    1 int main()
    2 {
    3     int a, c;
    4     
    5     return 0;
    6 }
    复制代码

    第3行代码的意思是定义了2个int类型的变量,变量名分别为a、c

     

    3.变量的使用

    1> 先定义,再初始化

    前面已经定义了两个变量,但是这两个变量并没有存储任何值,我们需要给变量进行第一次赋值,也叫做“初始化”。

    变量赋值的格式是:变量名 = 值;

    这个等号"="是一个赋值运算符,将右边的值赋值给左边的变量,也就是将右边的值存储到左边变量的存储空间中。

    复制代码
     1 int main()
     2 {
     3     int i;
     4     i = 10;
     5     
     6     char c;
     7     c = 'A';
     8     
     9     return 0;
    10 }
    复制代码

    在第4行给变量i赋值一个整型常量10,在第7行给变量c赋值一个字符型常量'A'。像第4、7行这样的赋值操作,称为“赋值运算”。

    内存中大致如下图所示,整数10存储在i的存储空间中,字母A存储在c的存储空间中。

    (其实我这个图并不是很准确,因为内存中的所有数据都是以0和1的形式存储的,比如10,它会存储成1010;字母A,它会存储成1000001。这里为了达到直观的效果,就没有写成二进制形式)

     

    2> 定义的同时初始化

    上面的代码也可以写成下面这样,在定义变量的同时进行初始化:变量类型  变量名 = 值;

    复制代码
    1 int main()
    2 {
    3     int i = 10;
    4     
    5     float f = 10.9f;
    6     
    7     double d = 9.8;
    8     return 0;
    9 }
    复制代码

     

    3> 可以不断修改

    既然i是个变量,说明它的值可以不断地改变,看下面的代码

    复制代码
     1 int main()
     2 {
     3     int i = 10;
     4     
     5     i = 89;
     6     
     7     char c = 'A';
     8     
     9     return 0;
    10 }
    复制代码

    在第3行定义了变量i,并且初始值为10。紧接着在第5行把i的值改为89,这个89会覆盖以前存储的10,内存中大致如下图所示

     

    4> const关键字

    刚才提到,默认情况下,变量的值是可以不断改变的。不过,有时候我们会希望变量的值只在定义的时候初始化一次,以后都不能再改变,这个时候我们就可以使用const关键字来修饰变量。

    复制代码
    1 int main()
    2 {
    3     const int i = 10;
    4     
    5     i = 11;
    6     
    7     return 0;
    8 }
    复制代码

    注意第3行,在int的前面加了个const关键字。表示变量i的值只会初始化一次,也就是说i的值永远都是一开始的10,以后都不能再改了。所以编译器会报第5行代码的错误,不允许再次修改i的值。

     

    4.变量的使用注意

    1> 不能重复定义同一个变量

    下面的代码是错误

    复制代码
    1 int main()
    2 {
    3     int i = 10;
    4     
    5     int i = 89;
    6     return 0;
    7 }
    复制代码

    编译器会报第5行的错,错误的原因很简单,第3行和第5行都是定义变量i,因此在内存中会是这样

    内存中会出现两块存储空间,而且名字都叫i,那如果我想取出变量i的值,那你说计算机取10好还是取89好呢?因此,这种做法肯定是不可以的。

     

    2> 可以将一个变量的值赋值给另外一个变量

    复制代码
    1 int main()
    2 {
    3     int i = 10;
    4     
    5     int a = i;
    6     
    7     return 0;
    8 }
    复制代码

    在第3行定义了变量i且初始值为10;接着在第5行定义了变量a,并且将变量i的值赋值给了a。在内存中大致如下图所示:

    变量i和变量a存储的值都是10

     

    3> 变量的作用范围(作用域)是从定义变量的那一行代码开始

    下面的代码是错误

    复制代码
     1 int main()
     2 {
     3     int a = i;
     4     
     5     int i = 10;
     6     
     7     int b = i;
     8     
     9     return 0;
    10 }
    复制代码

    编译器会报第3行的错误,错误原因是:标识符i找不到。我们是在第5行定义了变量i,因此变量i从第5行开始才有效,在前面的第3行是无效的。


    展开全文
  • 常量变量

    千次阅读 2014-03-15 12:41:39
    该区域自己的名称(变量名)类型(数据类型) 该区域的数据可以在同一类型范围内不断变化   为什么要定义数据类型? 就好像一套别墅,别墅中厨房、卫生间、卧室等(数据类型)房间,它们分别用来存放不同...
  • Objective-C static定义常量和变量总结

    千次阅读 2017-03-11 10:33:40
    1. .m 文件里定义static 常量// .mstatic const int kConstant = xxx;@implementation ...@end该文件里全局可见 (准确说应该是compilation unit,而不是文件) 外部文件不能通过extern引用 2. .m 文件里定义static ...
  • 03.Matlab的常量变量

    2020-07-19 21:08:32
    Matlab的常量变量matlab的常量matlab的变量变量取名规则变量初始化 matlab的常量 i 或 j 虚数单位,i2 = j2= -1 Inf 或 inf 正无穷大,由零做除数引入此常量 NaN 不定式,非数值量,由0/0等引入 Pi π...
  • 3.1 常量变量

    2009-07-29 21:14:00
    (作者:徐诚 http://blog.csdn.net/shizhebsys 保留版权)C语言程序中用于运算的数据可以分为常量...为了让读者能够更深入的了解常量变量的本质,在介绍常量变量前,我们首先需要认识计算机内部数据存储机制。3
  • 今天学习了数据、常量和变量。 一、数据 数据分为两种:静态数据动态数据。 1、静态数据 1)概念:静态数据是指一些永久性的数据,硬盘内存比较大,所以一般的存储在硬盘中。 2)存储的时长:计算机关闭...
  • 常量和变量,简单说就是不变的量可变的量。二者的概念比较简单,用的最多的是变量,重点掌握变量的声明使用
  • 二、常量变量和基本数据类型

    千次阅读 2018-04-08 20:20:38
    变量 声明变量 声明变量的作用(1)指定在内存空间中分配的空间大小(2)规定这个变量所能接受的运算下面我们举个例子进行变量的声明赋值package day01; /** * @author 超级皮皮虾 * @description 变量的声明...
  • C语言入门(4)——常量变量与赋值 对于基本... 常量常量有字符常量(CharacterConstant)、数字常量和枚举常量。枚举常量以后再介绍,现在我们看看如何使用字符常量和数字常量: #include#includeint main(void){
  • 为什么需要有常量? 例如生活当中一周7天,数学中π等等。 常量: 在程序的执行过程中,其值不会发生改变的量 常量的分类 1.字面值常量 12 2.5 false “helloworld” 2.自定义常量 字面值常量的分类 整型常量 二进制 ...
  • 程序中数据最基本的存储单位就是变量,程序执行时会在计算机内存中开辟空间存储变量。而计算机程序的执行基本就是通过读取或操作这些变量来实现的。...掌握变量和常量的使用是使用任何一门计算机语言所必备的基础
  • tensorflow---之常量变量的区别

    千次阅读 2018-09-03 16:42:35
    TensorFlow 中最基本的单位常量(Constant)、变量(Variable)占位符(Placeholder)。常量定义后值维度不可变,变量定义后值可变而维度不可变。在神经网络中,变量一般可作为储存权重其他信息的矩阵,而...
  • 常量可以是任何的基本数据类型,如:整数常量、实型常量、字符常量和字符串常量变量与常变量 实际上,我们在编写程序的时候,对引脚的使用,一般不会直接使用常量,更喜欢先定义一个变量(或者常变量)来表示...
  • Ruby对象、变量和常量

    千次阅读 2016-01-11 13:40:09
    Ruby操作的数据主要部分:对象、类、变量常量.对象在Ruby中表示数据的基本单位称为对象,在Ruby中一切都是对象. 常用对象: 数值对象 2、3.14、-5等表示数字的对象,另外还有矩阵、复数、素数、公式的对象. ...
  • MATLAB 数据类型 常量变量

    千次阅读 2019-04-12 21:25:22
    例如,“a”“A”是不同的变量。  3、 变量名不能超过63个字符,第63个字符后的字符被忽略;  4、关键字(如if、while等)不能作为变量名;  5、最好不要用特殊常量符号作变量名。   常见的错误...
  • T-SQL中的常量变量

    千次阅读 2019-02-22 16:11:38
    字符串常量包含字母、数字字符(a~z、A~Z0~9)及特殊字符(如数字号#、感叹号!、at符@) (2)二进制常量: 在Transact—SQL中定义二进制常量,需要使用0x,并采用十六进制来表示,不再需要括号。 例如,以下为二...
  • C语言-基础入门-学习笔记(2):常量变量&基本数据类型 一、常量变量 1.常量 常量是指在程序运行过程中不可改变的量,C语言中的数值都可以用常量来表示。常量可以表示各种数据类型的值。 总结一下在打印时,...
  • Java是一种强类型语言,对不同数据结构进行了严格的区分,对每一种数据类型都做了明确定义,也同时规定了每一种数据类型的变量在内存中占用空间的大小。 a) 字节 字节是计算机当中存储数据的基本单位 l 比特位 ...
  • 一、张量 我们知道, 计算图中的一个节点可以表示一个张量或者一个操作符 那么张量是什么? 张量,可理解为一个 n 维数值阵列 ...1、常量常量是其值不能改变的张量。 2、变量:当一个量在会话中的值需要更新时,使用...
  • 在看书时发现了这几个概念有些混乱,同学们讨论也觉得这个地方没搞懂,包括网上的一些对于这方面的介绍,让自己更糊涂了。花了几天时间,稍微弄懂了些。 之所以有些混乱,我觉得是基本概念没有搞清楚,我查阅了...
  • 常量变量、向量、矩阵 常量应该是比较容易理解的一个数学概念。从小我们对于年龄、大小、高低、远近等概念比较直观的感受,并且知道这些概念会至少在一段时间内不会变化,比如说妈妈买了十个苹果,无论放在茶几...
  • 数据流图用「结点」(nodes)「边」(edges)组成的向图来描述数学运算。「结点」一般用来表示施加的数学操作,但也可以表示数据输入的起点输出的终点,或者是读取/写入持久变量(persi...
  • 【C语言】04-常量变量

    千次阅读 2013-09-30 23:11:33
    总的来说,计算机中存储的数据可以分为两种:静态数据动态数据。 1> 静态数据 概念:静态数据是指一些永久性的数据,一般存储在硬盘中。硬盘的存储空间一般都比较大,现在普通计算机的硬盘都500G左右,因此...
  • Java语言基础组成:关键字、标识符、注释、常量和变量、运算符、语句、函数、数组 一. 关键字 【注】关键字的所有的字母都是小写 1. 用于定义数据类型的关键字 基本数据类型 数值型 整数:byte(字节) ...
  • 前言         ...Transact-SQL代码是SQL Server的核心,使用Transact-SQL可以实现关系数据库中的数据查询、操作添加功能。本篇博客将详细讲解Transact-S...
  • Java基础第2讲:变量和常量

    多人点赞 2017-05-17 09:50:33
    //整型变量 protected double price = 20.12; //浮点型变量 public boolean isVip = false; //布尔型变量 public char sex = '男'; //字符型变量 public String userName = "李雷"; //字符串型变量 1、常量 1.1...
  • C++词法规则之变量 常量 语句 注释

    千次阅读 2013-12-19 17:39:49
    广义上来说:c++两种数据类型,常量和变量。   常量是在定义后它在程序运行中其值不能被改变的量。C++中可以用#define 、const 这两种方法定义常量。 例如:#define PRICE 10 //定义单价常量10。 const int PRICE...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 89,919
精华内容 35,967
关键字:

常量和变量有没有单位