C语言基础学习第二天,变量和控制语句

1. 变量

1.1 定义

        简单来说,在内存中能开辟一个空间,存储一个值,就是变量。它在程序运行过程中会发生变化,且只能被定义一次。

1.2 格式

        存储类型    数据类型    变量名

例如:auto    int    a;

auto被解释为一个自动存储变量的关键字,也就是申明一块临时的变量内存,一般省略不写。

 1.3 存储类型

        数据类型决定开辟空间的大小

数据类型字节大小取值范围
char:字符型1-128~127
int:整形4-2^31 ~ 2^31-1
short:短整型2-2^14 ~ 2^14-1
long:长整型4或8-2^31 ~ 2^31-1
float:单精度浮点型4有效位数6~7
double:双精度浮点型8有效位数15~16

 1.4 全局变量和局部变量

局部变量全局变量
定义位置函数体内部函数体外部
初值未初始化时,值为随机值未初始化时,值为0
存储位置栈区全局区
生命周期同当前函数体共存亡同整个程序共存亡
作用域函数内部整个程序

2. 常量 

2.1 整型常量

八进制:012,-012;表示八进制时,在前面+‘0’

十进制:89,-98.

十六进制:0xf,-0x12;表示十六进制时,在前面+‘0x’

2.2 字符常量 

  • 用 ' ' 包裹,表示字符。
  • 用 " " 包裹,表示字符串。

2.3 浮点常量 

就是我们常说的小数,2.32,3.1415。

2.4 (标识常量)宏定义

格式:#define  宏名  常量值或表达式或函数

#define N M+m

#define N 5

#define SQR(X)  X*X 

宏定义,在程序编译时,只是单纯的替换 

#include<stdio.h>
#define M 5
#define N M+M
int main(){
    int k = 5;
    k = N * N * k
    printf("%d\n",k);
    return 0;
}

        我们看这个代码,按照我们平常的思维,N在被替换的时候应该加(),但是只是单纯替换,所以正确的打开方式是:k = 5+5*5+5*k

3. 变量常量的输入输出 

        3.1 字符输入输出

getcharputchar
功能在终端输入字符在终端输出字符
参数字符的ASCII码值
返回值字符的ASCII码值字符的ASCII码值

        3.2 按格式输入输出 

                3.2.1 printf(输出)

%cchar
%dint
%ffloat
%ifdouble
%sstring
%p指针
%o八进制
%x十六进制

%m.n : m表示位宽,n表示保留几位小数

                 3.2.2 scanf(输入)        

int scanf(const char *format, ...);

功能:按格式终端输入

参数:多个

返回值:正确输入字符的个数

开始位置输入错误,返回0

4.分支结构

    4.1 if

        4.1.1 普通if

         if和我们人类平成的思维是一样的,如果......就......否则......

格式:if(表达式1)

        {

                语句块1;

        }else

        {

                语句块2;

        }

执行顺序:表达式1成立,则执行语句块1,否则执行语句块2

     4.1.2 多层分支

if(表达式1)

{

        语句块1;

}

else if(表达式2)

{

        语句块2;

}

else

{

        语句块3;

}

 执行顺序:表达式1成立,则执行语句块1,表达式2成立,则执行语句块2,否则执行语句块3

 4.1.3 嵌套

if(表达式1)

{

        if(表达式 2)

        {

                语句块1;

        }

}

 执行顺序:表达式1成立,且表达式2也成立,则执行语句块1

注意!: 

  • if后边可以没有else,else前边必须有if 
  • 分支语句只有一行的时候,可以省略 { }

     4.2 switch 

 格式:

switch(变量名或表达式)

{

        case 常量1:

                语句块1;

                break;

        case 常量2:

                语句块2;

                break;

        default:

                语句块3:

                break;

}

default为case中没有的其他值,通俗来讲就是上面多层分支中的else

//红绿灯,1绿,0红,2黄
int score = 1;
switch(a)
{
    case 0:
        printf("停!!!\n");
        break;
    case 1:
        printf("行!!!\n");
        break;
    case 2:
        printf("减速!!!\n");
        break;
    default:
        break;
}

 注意!:

  • case常量一般是整型或字符
  • case后边可以没有break,程序会从符合条件的分支开始继续向下执行,直到遇见break为止,或执行到分支结束

 小练习:

int a = 10;
switch(a)
{
    case 0: a++;
    case 10: a++;
    case 11: a++;
    default: a++;
}
printf("%d\n",a);

答案是 13  你算对了吗

 继续加油!!!

如有错误,欢迎大家指正!

  • 20
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值