c语言(变量)

变量

  • 在程序执行过程中其中的值可以被改变的量。
  • 变量代表内存中具有特定属性的一个存储单元,它是用来存放数据的,即存放变量的值的;
  • 变量应该有一个名字,以便按名字引用(使用)变量。
  • 变量定义格式;

​ 数据类型 变量名列表;


  • ​ 变量名的命名要符合下列两个规则:

  • 变量名必须以字母或下划线开头,后面可以跟若干个字母、数字或下划线;

  • 变量名不能与C语言中已经存在的标识符重名

  • 变量名、变量值、变量所占存储单元之间的关系

    C语言中的标识符

对标识符的定义 用来标识对象的名字的有效字符。对象包括变量、函数、数组、类型等。即标识符就是对象的名字。

标识符的构成

​ C语言规定标识符只能由字母、数字和下划线3种字符组成,且第一个必须为字母或下划线。

​ 编译系统对大小写敏感。变量名一般用小写字母表示。

C语言中有3类标识符
  • 关键字 有32个,系统有特定的含义和用途,如:float、 int、if、else等,不能用作变量名;
  • 系统预定义的标识符 如系统提供的库函数名sin、printf、main及预编译命令define、include等;
  • 用户标识符 用户定义的标识符,用来给程序中的变量、自定义函数、符号常量、数组、结构体、共用体、文件等命名。
整型变量的定义
  • 一个类型说明语句可以同时定义多个同类型的变量,各变量之间用逗号“,”分隔。多个同类型的变量也可以用多 个类型说明语句定义;
  • 用类型说明语句定义的变量只是说明了为这些变量分配了 存储空间,以便用于存放与之相同类型的数据,在未对这 些变量赋值前,这些变量中(即存储空间中)的值是随机的;
  • C语言允许在定义变量的同时为变量赋初值;
  • 在为长整型变量初始化或赋值时,如果被赋数据为基本整 型常量,则C编译系统自动将被赋数据转换成与相应变量的类型一致;
  • 由于各种整型变量所占的字节数有限,因此,它们所能存放的整数有一定的范围。

用来存放整型数据的变量

  • 我们定义一个整型的变量,C编译系统实际是在内存中分配了能够存储一个整型数据的存储空间,并用变量名来标识这个空间,对该空间的使用也就可]以通过变量名来访问。
  • 若不知道所用的C编译系统对变量分配的存储空间大小,可用sizeof运算符查询,如: printf(“%d,%d,%d\n”,sizeof(int),sizeof(short),sizeof(long));
整型变量的定义与使用。C源程序如下
 #include  <stdio.h>
  void main()
  { int  a,b,c,d;
    unsigned   int u;
    a=12;b=-24;u=10;
    c=a+u;d=b+u;
    printf(“ a+u=%d, b+u=%d\n",c,d);
  }

运行结果为:

a+u=22 , b+u=-14

整型数据在内存中的存放形式

数据在内存中是以二进制形式存放的。如果有以下语句:

int i; /定义i为整型变量/

i=10; /给i赋整数10为值,若在内存中占2字节/

则十进制数10的二进制形式为1010,在内存中的实际存放形式为:

在这里插入图片描述

整型数据在内存中的存放形式
  • 正数的补码和原码(即该数的二进制形式)相同;
  • ● 负数的补码是将该数绝对值的二进制形式,按位取反再加1。 例如-10的补码是:1111111111110110。因为:
  • 在这里插入图片描述

​ 可见:在存放整数的存储单元中,一般情况下,最左边的一位用来表示符号位。符号位为“0” 时表示正数,符号位为“1”时表示负数。

浮点型变量
浮点型变量的分类

在这里插入图片描述

浮点型数据在内存中的存放形式

浮点型数据在内存中按照指数形式存放。系统将一个浮点数分成小数部分和指数部分,分别存放。

在这里插入图片描述

  • 写出27.5在内存中的存放方式:

  • 27.5的二进制为11011.1 指数表示法: 1.10111*2^4

  • 指数:4,加上127,就是131,二进制1000 0011

  • 尾数(小数点后的数)10111,补够23位 1011 1000 0000 0000 0000 000

  • 用二进制表示就是 (符号数位1位)0 (指数位8位)1000 0011 (尾数位23位)1011 1000 0000 0000 0000 000

    字符变量
  • 字符型变量用来存放字符常量。字符型变量的定义方式如为:

…… char c1,c2;

c1=‘a’;

c2=‘b’;

printf(“c1=%c\n",c1);

printf(“c2=%c\n”,c2);

……

字符数据在内存中的存储形式及其使用方法
  • 将一个字符常量存入一个字符变量,实际上并不是把该字符本身存入内存单元中,而是将该字符对应的ASCII码存入内存单元中。

char c1 =‘a’,c2 =‘b’ ;

​ ‘a’的ASCII码为97、 ‘b’的ASCII码为98,它们在内存中的存放形式为:

在这里插入图片描述
在这里插入图片描述

字符数据在内存中的存储形式及其使用方法

由前可见,在内存中字符数据的存储形式与整型数据的类似,这就使得字符型数据和整型数据之间可以通用。即一个字符数据既可以字符形式输出,也可以整数形式输出

以字符形式输出时,系统先将内存单元中的ASCII码转换成相应字符,然后输出。

以整数形式输出时,直接将ASCII码作为整数输出。

因此,可以对字符数据进行算术运算,这时相当于对其ASCII码进行算术运算。

给字符变量赋整数为值。
 #include <stdio.h>
  void main( )
  { char c1,c2;
    c1= 97;c2= 98;
    printf(“%c   %c   \n”,c1,c2);    /*以字符形式输出*/
    printf(“%d   %d   \n”,c1,c2);   /*以整数形式输出*/
  }         

运行结果为:

a b

97 98
在这里插入图片描述

#include <stdio.h>
  void main( )
  { char c1,c2;
    c1= ‘a’;c2=‘b’; c1=c1-32;c2=c2-32;
    printf(“%c  %c\n”,c1,c2);
  }

运行结果为:

A B

英文大小写字母的转换
#include "stdio.h"
int main()
{ char x,y,c1,c2;
  x='A';
  y='B';
  c1=x+32;
  c2=y+32;
  printf("x=%c,y=%c\n",x,y);
  printf("c1=%c,c2=%c\n",c1,c2);
}

这个程序的输出结果为

x=A,y=B

c1=a,c2=b
’;c2=‘b’; c1=c1-32;c2=c2-32;
printf(“%c %c\n”,c1,c2);
}


运行结果为: 

A  B

###### 英文大小写字母的转换

#include “stdio.h”
int main()
{ char x,y,c1,c2;
x=‘A’;
y=‘B’;
c1=x+32;
c2=y+32;
printf(“x=%c,y=%c\n”,x,y);
printf(“c1=%c,c2=%c\n”,c1,c2);
}


这个程序的输出结果为

x=A,y=B

c1=a,c2=b
  • 25
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值