C语言中变量的定义和区别
开宗明义,变量是指在程序运行过程中可以改变的量。C语言中的变量分为全局变量和局部变量,二者的生命周期是不一样的。全局变量作用域比局部变量来的大,且全局变量的生命周期相比较与局部变量来得长。
格式化输出函数printf和变量
#include <stdio.h>
int g =100;//这是一个全局变量 global var
int
main()
{
int a=2,b=3;
char c='A';
char *d="David"; //该(伪)类型为字符串,这里的*为指针。具体学习到后面再接触
double e=0.562;
float f=0.123;
/*
1.上面的语句属于声明语句,介绍变量的名字和数据类型,以便于在内存里给他安排一个合适大小的家
2.变量一定要先声明后使用,变量可以分为局部变量和全局变量。局部变量只作用在作用域即{}内部,全局变量则作用于整个c语言程序当中
**********************************************************************************************************************************
****************下面的语句 属于执行语句,用于程序的具体执行 ****************************
*/
printf("Hello,World!\n"); //printf()是一个函数,全称为格式化输出函数(print format fuction)其中括号中的为它的参数值. \n 是一种转义字符,作用是换行并且回到第二行的开头
{
int h=50;
printf("%d\n",h); // 局部变量,其实可以理解为局部局部变量,因为它在两个{}之间
}
printf("%d\n",g);
// printf("%d\n",h); 该语句则会报错显示变量未声明 'h'undeclared
/*
*********************这是一个分割线,没有什么特殊意义****************************
*/
printf("%d\n",a); // %d是占位符,意思表示输出的数据类型为十进制整数;
printf("%d\n",a+b); // 在printf第二个参数中写入了一个表达式,发现输出的结果为表达式的运算结果
printf("%c\n",c); // %c输出的为字符
printf("%d\n",c); // 根据ASCII 表 可以知道字符可以转化为十进制整数输出
printf("%s\n",d); // %s 输出为字符串
printf("%lf\n",e); // %lf 输出类型为浮点型
printf("%f\n",f); // 输出类型为浮点型
return 0;
}
变量的类型和所占内存空间的大小
#include<stdio.h>
int //规定主函数返回值的数据类型为int,可以看到后面返回值为0
main() // main()括号中也可以输入参数,实现更多的功能
{
int a=12; // 整型类型 占据四字节
long b=34; // 长整型 占据 四字节
short c=-56; // 短整型 占据两个字节
unsigned int d=58; // 无符号的整型 ,无符号的意思为去掉了负数,只保留了大于零的数字 下面同理
unsigned long e=45;
unsigned short f=699;
char g='A'; //字符型,占据1字节
unsigned char h='F';
float i=0.235; //单精度的浮点型 4字节
double j=0.569,k; //双精度的浮点型 8字节
/***********************************这是一条分割线***************************************************/
printf("int数据类型长度为 %d\n",sizeof(a)); // sizeof 可以显示所占的字节数
printf("long数据类型长度为 %d\n",sizeof(b));
printf("short数据类型长度为 %d\n",sizeof(c));
printf("unsigned int数据类型长度为 %d\n",sizeof(d));
printf("unsigned long数据类型长度为 %d\n",sizeof(e));
printf("unsigned short数据类型长度为 %d\n",sizeof(f));
printf("char数据类型长度为 %d\n",sizeof(g));
printf("unsigned char数据类型长度为 %d\n",sizeof(h));
printf("float数据类型长度为 %d\n",sizeof(i));
printf("double数据类型长度为 %d\n",sizeof(j));
/*
***********************************这是一条分割线*******************************************************
*/
//强制类型转换 注意可能会发生精度损失
k=(double) d;
printf("%f",k);
//不同类型的数据在进行运算的时候,会发生自动类型转换 转换的原则为由小的数据类型转换为大的数据类型 char short-->int -->unsined-->long-->double-->long double float---->double
return 0;
}