变量与常量
变量
什么是变量:程序在运行期间数值可以变化的叫做变量,相当于存储数据的盒子
定义:
类型 变量名;
int num;
取名规则:
1、由字母、数字、下划线组成
2、不能以数字开头
3、不能与关键字重名,一共32个
4、见名知意(功能、类型、范围...)
例:printf scanf bool sizeof 中只有sizeof非法,剩余三个在未使用的时候可以用作变量
使用:
赋值: num = 100;
参与运算: num * 10;
注意:变量的默认值是随机的,为了安全起见我们一般要进行初始化,一般初始化为0
变量的输入、输出:
int printf(const char *format, ...);
功能:输出数据
format:"双引号包含的格式信息(提示信息+占位符)"
... :变量列表
返回值: 输出字符的个数
类型占位符:C语言通过类型占位符的方式来传递变量的类型
%hhd %hd %d %ld %lld 有符号
%hhu %hd %u %lu %llu 无符号
%f %lf %Lf
%c
练习1:定义各种类型的变量并初始化,分别使用printf来显示
#include <stdio.h>
#include <stdint.h>
int main(int argc,const char* argv[])
{
char c1 = 1;
short s1 = 2;
int i1 = 3;
long l1 = 4;
long long ll1 = 5;
int8_t uc1 = 21;
int16_t us1 = 22;
int32_t ui1 = 23;
int64_t ul1 = 24;
float f1 = 1.1;
double d1 = 1.2;
long double ld1 = 1.3;
printf("char:%hhd\n short:%hd\n int:%d\n long:%ld\n longlong:%lld\n",c1,s1,i1,l1,ll1);
printf("uchar:%hhu\n ushort:%hu\n uint:%u\n ulonglong:%llu\n",uc1,us1,ui1,ul1);
printf("float:%f\n double:%lf\n longdouble:%Lf\n",f1,d1,ld1);
}
int scanf(const char *format, ...);
功能:输入数据
format:"双引号包含的格式信息(占位符)"
... : 变量地址列表 &变量名
返回值:成功输入的变量个数
注意:scanf需要的是变量类型、变量地址
变量地址 = &变量名
练习2:定义各种类型的变量并初始化,使用scanf输入,在通过printf输出
#include <stdio.h>
#include <stdint.h>
int main(int argc,const char* argv[])
{
char c1 = 1;
short s1 = 2;
int i1 = 3;
long l1 = 4;
long long ll1 = 5;
int8_t uc1 = 21;
int16_t us1 = 22;
int32_t ui1 = 23;
int64_t ul1 = 24;
float f1 = 1.1;
double d1 = 1.2;
long double ld1 = 1.3;
printf("char:%hhd\n short:%hd\n int:%d\n long:%ld\n longlong:%lld\n",c1,s1,i1,l1,ll1);
printf("uchar:%hhu\n ushort:%hu\n uint:%u\n ulonglong:%llu\n",uc1,us1,ui1,ul1);
printf("float:%f\n double:%lf\n longdouble:%Lf\n",f1,d1,ld1);
printf("输入:");
scanf("%hhd",&c1);
printf("输入:");
scanf("%hhu",&uc1);
printf("输入:");
scanf("%f",&f1);
printf("%hhd\n",c1);
printf("%hhu\n",uc1);
printf("%f\n",f1);
}
常量
什么是常量:程序运行期间数值不能变化的叫常量
100 默认int
100u unsigned int
100lu unsigned long
100llu unsigned long long
100l long
10ll long long
3.14 默认double
3.14f float
3.14l long double
问题:100年有多少秒,忽略润平年问题
#define SEC (3600*24*365*100u)