c语言基础

一、变量与常量

(1)常量:值不能被改变的量,数字、字母等

整型常量

c语言中有十进制、八进制、十六进制整数,例如10、056、0x8A等。

实型常量

十进制小数以及指数形式小数,例如1.23、.23、12.34e3等

字符常量

普通字符以及转义字符,例如’A’、’a’、’\n’(换行)等

字符串常量

若干字符,例如’abc123’等

(2)变量:值能够被改变的量,需要用关键字定义与基本数据类型配合使用

定义格式

数据类型 变量名; int num;

使用格式

变量名 num

初始化格式

数据类型变量名=数值; int num=10;

#include <iostream>
using namespace std;
int main() {
    int num1=10;
    int num2=20;
    cout << num1+num2<<endl;
    return 0;
}

二、基本数据类型

什么是基本数据类型:对数据分配存储单元的安排

(1)整型

int(整型4字节)、short(短整型2字节)、long(长整型8字节)

(2)字符型

char(字符型1字节)

(3)浮点型

float(单精度浮点型4字节)、double(双浮点型8字节)

1字节=8位([0000 0000])

#include <iostream>
using namespace std;

int main() {
    int num1=10;
    int num2=20;
    cout<< num1 << '\t' << num2 <<endl;
    char char1='a';
    char char2='z';
    cout<< char1 << '\t' << char2 <<endl;
    float float1=1.23;
    float float2=2.34;
    cout<< float1 << '\t' << float2 <<endl;
    double double1=3.45;
    double double2=4.56;
    cout<< double1 << '\t' << double2 <<endl;
    return 0;
}

三、ASCII码表

image

四、格式化输入与输出

什么是输出

计算机箱输出设备输出数据:printf(格式控制,输出列表);  printf(“%d”,num);

什么是输入

从输出设备向计算机输入数据:scanf(格式控制,地址列表);  scanf(“%d”,&num);

#include<iostream>
using namespace std;

int main() {
    int num;
    printf("请输入num值\n");
    scanf("%d",&num);
    printf("输出num值");
    printf("%d\n",num);

    //清除缓冲区中的换行符
    while(getchar() != '\n');
    char ch1;
    printf("请输入ch1值\n");
    scanf("%c",&ch1);
    printf("输出ch1值%c\n",ch1);

    //清除缓冲区中的换行符
    while(getchar() != '\n');
    float float1;
    printf("请输入float1值\n");
    scanf("%f",&float1);
    printf("输出float值\n");
    printf("%.2f",float1);
    return 0;
}

五、运算符

运算符:用于进行相关运算的特殊符号

运算符的优先级以及结合性:优先级表示运算的先后顺序,结合性表示同级运算符的运算方向

分类:算术运算符、关系运算符、逻辑运算符、条件运算符、位运算符、赋值运算符

算术运算符

用于进行算术运算,结果为确切的值

+(正号)、-(负号)

单目运算符,结合性自右向左,表示正负关系(+a,-a)

*(乘号)、/(除号)、%(取余)、+(加)、-(减)

双目运算符,结合性自左向右,简单算术运算

++(自增)、--(自减)

单目运算符,结合性自右向左,自增自减运算,分为前置自增和后置自增(++a,a++,--a,a--)

#include<iostream>
using namespace std;

int main(){
    int num1=5;
    int num2=2;
    int num3=num1/num2;
    int num4=num1%num2;
    printf("%d\n",num3);
    printf("%d\n",num4);
    printf("%d\n",++num4);
    printf("%d\n",num4++);
    printf("%d\n",num4);
    return 0;
}

关系运算符

用于进行算术运算,结果为1或0

<(小于),<=(小于等于),>(大于),>=(大于等于),==(等于),!=(不等于)

双目运算符,表示运算符两边的关系,关系成立结果为1,不成立结果为0(a<b)

逻辑运算符

用于进行逻辑运算,结果为1或0

&&(逻辑与)

双目运算符,同真为真,有假为假(a&&b)

||(逻辑或)

双目运算符,同假为假,有真为真(a||b)

!(逻辑非)

单目运算符,真为假,假为真(!a)

计算机判断真假:0为假非0为真

条件运算符

进行条件运算,结果根据条件判断

?:(条件运算符)

三目运算符,a为真则输出b的值,a为假则输出c的值(a?b:c)

#include<iostream>
using namespace std;

int main() {
    int num1=5;
    int num2=3;
    printf("%d\n",num1++);
    int num3;
    // 输出num1和num2中较大的值
    num3=num1>num2?num1:num2;
    printf("%d\n",num3);
    return 0;
}

位运算符

&

位与:操作的两个位都是1,得到的结果就是1,其他情况结果都是0

|

位或:操作的两个位都是0,得到的结果就是0,其他情况结果都是1

~(单目):

位非:位的值为1,结果变为0。值为0,结果变为1

^

位异或:操作的两个位不相同,得到的结果就是1,其他情况结果都是0

<<

位左移:将左操作数据的数据位往左移动右操作数表示的位数,左边移出的数据位丢弃,右边补0

>>

位右移:将左操作数据的数据位往右移动右操作数表示的位数,右边移出的数据位丢弃,正数左边补0,负数左边补1

#include<iostream>
using namespace std;

int main() {
    int num1=2;
    int num2=3;
    printf("%d\n",num1 & num2);
    printf("%d\n",num1 | num2);
    printf("%d\n",~num1);
    printf("%d\n",num1^num2);
    printf("%d\n",num1>>2);
    printf("%d\n",num1<<2);
    //两数交换
    num1=num1^num2;
    num2=num2^num1;
    num1=num1^num2;
    printf("%d\n",num1);
    printf("%d\n",num2);
    return 0;
}

 

  

  

  

 

posted @ 2025-11-25 16:23  leagueandlegends  阅读(26)  评论(0)    收藏  举报