目录
1、常量 值不能被修改 (千万不能反过来说:值不能修改就是常量)
2、变量 系统根据变量的类型 开辟对应的空间 其值可以被修改
知识点1【常量与变量概念】
1、常量 值不能被修改 (千万不能反过来说:值不能修改就是常量)
10 20 4.14 ‘a’ "abcd"
2、变量 系统根据变量的类型 开辟对应的空间 其值可以被修改
变量名 代表的是 空间的内容 (重要)
操作变量 就是 对空间内容的操作
变量名的命名规则:由数值、字母、下划线组成但不能以数字开头。
A: num_1 B: _num1 C: 1_num D: num
知识点7【八进制 十进制 十六进制】
十进制:0~9
八进制:0~7
十六进制:0~9 a~f
八进制 十进制 十六进制 都是整型的输出形式。
不同进制 仅仅是数据的表现形式 不会修改数据本身(重要)
void test03()
{
int num = 100;
//十进制 输出 %d %u %ld %lu
printf("十进制:num=%d\n", num);//100
//八进制 输出 %o 以0开头
printf("八进制:num=%#o\n", num);//0144
//十六进制 输出 %x 以0x开头
printf("十六进制:num=%#x\n", num);//0x64
//不同进制 仅仅是数据的表现形式 不会修改数据本身
}
int main(int argc,char *argv[])
{
test03();
return 0;
}
知识点2【整型变量的操作-读、写】取值、赋值
void test04()
{
//局部变量不初始化 内容随机
//int num;
int data = 0;
int num = 0;
printf("num = %d\n",num);//读 取值
num = 100;//写 赋值
printf("num = %d\n",num);
data = num;//num读 data写
printf("data = %d\n",data);
//获取键盘输入
printf("请输入一个int数据:");
scanf("%d", &data);//&data 代表是data对应空间的起始地址
printf("data = %d\n",data);
}
整形的输出形式
void test05()
{
int num1 = 0;
//%d 有符号int数据输出
printf("num1 = %d\n", num1);
unsigned int num2 = 0;
//%u 无符号int数据输出
printf("num2 = %u\n", num2);
long num3 = 0;
//%ld 有符号long数据输出
printf("num3 = %ld\n", num3);
unsigned long num4 = 0;
//%lu 有符号long数据输出
printf("num4 = %lu\n", num4);
short num5 = 0;
//%hd 有符号short数据 输出
printf("num5 = %hd\n",num5);
unsigned short num6 = 0;
//%hu 无符号short数据 输出
printf("num6 = %hu\n",num6);
}
unsigned short num6=0;
scanf("%hu",&num6);//输入
知识点3【实型 常量】
void test06()
{
//赋值语句 = 两边的类型 尽量保证一致
float f = 3.14f;//有没有问题
double d = 3.14;
//不以f结尾的 实型常量 为double类型
printf("sizeof(3.14) =%d\n",sizeof(3.14));//8
//以f结尾的 实型常量 为float类型
printf("sizeof(3.14f) =%d\n",sizeof(3.14f));//4
//%f 输出 float数据
printf("f = %f\n",f);
//%lf 输出 double数据
printf("d = %lf\n", d);
scanf("%f", &f);
scanf("%lf", &d);
}
知识点4【字符常量和变量】(重要)
1、字符常量 char
void test07()
{
//%c 输出的字符
//printf("%c\n",'a');
//字符变量
//ch 存储的是 ‘a’的ASCII值
char ch = 'a';
printf("ch = %c\n",ch);
//%d 输出的字符的ASCII值
printf("ch = %d\n",ch);
//'a' 单引号 表示的取 字符的ASCII
//'a' == 97是完全等价
ch = 97;
printf("ch = %c\n",ch);
//%d 输出的字符的ASCII值
printf("ch = %d\n",ch);
ch = ch+1;
printf("ch = %c\n",ch);
//%d 输出的字符的ASCII值
printf("ch = %d\n",ch);
}
int main(int argc,char *argv[])
{
test07();
return 0;
}
总结:
1、'a' 单引号 表示取a的ASCII值
2、字符在计算机及存储的是ASCII
3、'a' ==97
void test08()
{
char ch = 'a';
printf("%d\n",sizeof('a'));//4字节
printf("%d\n",sizeof(char));//1 字节 为啥?
}
int main(int argc,char *argv[])
{
test08();
return 0;
}
字符获取键盘输入:
void test09()
{
char ch;
printf("请输入一个字符:");
//scanf中%c只能提取一个字符
//scanf("%c", &ch);
ch = getchar();//获取一个字符
printf("ch = %c\n",ch);
printf("ch = %d\n",ch);
}
int main(int argc,char *argv[])
{
test09();
return 0;
}
案例:提高 键盘输入 “abc” 只取 'a'和‘c’
void test09()
{
char ch1,ch2;
printf("请输入abc:");
//提取a
ch1 = getchar();
getchar();//丢弃一个字符
ch2 = getchar();
printf("ch1 = %c\n", ch1);
printf("ch2 = %c\n", ch2);
}
int main(int argc,char *argv[])
{
test09();
return 0;
}