C语言基础

一、基本数据类型

数据类型字节数说明
char1字符数据类型
short2短整型
int4整型
long4长整型
long long8更长的整型
float4单精度浮点数
double8双精度浮点数

示例

 // 字符类型
    char ch1 = '1';
    char ch2 = 'a';
    printf("ch1 = %c\n", ch2);
    // 短整型
    short int a = 11;  //-32768-----32767
    // 整型
    int a1 = 44; //-20亿----20亿
    // 长整型
    long int a2;
    // 查询所占字节
    printf("short int = %d\n", sizeof(short int));
    // 浮点类型
    float b = 3.8f;
    // 双浮点型
    double b2 = 3.8;
    // signed有符号(默认可以省略)
    signed int b3 = -6;
    // void关键字:用于修饰函数的参数或返回值,代表没有参数或没有返回值
    // register只能修饰鼓字符类型或整型
    // register可以快速获取到
    // register可能存放在寄存器中也可能存在内存中,因此不能对register取地址
    // const 修饰常量
    const int b4 = 2;
    const char ch3 = 'x';
    const int b5 = 120;
    printf("b5 = %c\n", b5);
    printf("ch3 = %d\n", ch3);
    

二、常量和变量 

  • 常量:值不可以变的量

变量:值可以变的量

三、格式化输出字符

格式化输出字符说明
字符说明
%d十进制有符号整型输出
%u十进制无符号整型输出
%x以十六进制表示的整数
%o以八进制表示的整数
%ffloat型浮点数
%lfdouble型浮点数
%e指数形式浮点数
%s字符串
%c单个字符
%p指针的值
%3d宽度为3,如果不足,前面空格补齐
%03d宽度为3,如果不足,前面0补齐
%-3d宽度为3,如果不足,后面空格补齐
%.2f小数点后只保留2位

四、 类型转换

  • 自动转换
  1. char、short、int参加运算结果都是int
  2. 当表达式中出现了带小数点的实数,参加运算时会被转换成double类型并且结果也是double类型
  3. 当表达式中有符号数也有无符号数,参加运算时会变成无符号数参加运算结果也是无符号数
  4. 在赋值语句中等号右边的类型自动转换成等号左边的类型
  • 强制转换
强制转换的方法
方法说明
(float)a把a的值转换为实型
(int)(x+y)把x+y的结果转换为整型

五、运算符

运算符
运算符号简写(等价写法)说明
+加号
-减号
*乘号
/除号
%取余
a = a/ba /= ba等于a除b
a = a*ba *= ba等于a乘b
a = a+ba += ba等于a加b
a = a-ba-= ba等于a减b
b=a++b=a ---> a+1a自加1(先用后加)
b=++aa+1 ---> b=aa自加1(先加后用)
a ? b:ca可以为表达式,a为true则执行b,a为false执行c
>大于
<小于
==等于
>=大于等于
<=小于等于
!=不等于
&&
||
~按位取反
&按位与运算
|按位或运算
^按位异或
>>

逻辑右移:高位补零,低位溢出

算数右移(有符号数):高位补符号位,低位溢出

<<逻辑左移:高位溢出,低位补0

六、 原码,反码,补码

  • 正数的原码=反码=补码
  • 负数在内存中用反码表示
  • 补码就是反码+1
  • 例如 5 的原码=反码=补码为0000 0101;-5的原码为1000 0101;-5的反码为1111 1010;-5的补码为1111 1011

七、控制语句

  • if判断
//判断后执行多行语句
if(条件表达式)
{


}
//判断后执行一行
if(条件表达式) return (语句);
  • switch
switch (表达式)
    {
    case 常量表达式:
        语句
        break;
    
    default:
        break;
    }
  •  for循环
   // 表示定义i=0,,每次循环判断i<10是否为true,如果为false执行i++然后继续执行循环代码然后再继续判断
    for (int i = 0; i < 10; i++)
    {
        循环代码
    }
  •  while(先判断后执行)
 // 如果条件表达式为true则循环执行循环代码
    while (条件表达式)
    {
        循环代码
    }
  • do.....while(先循环再判断)
   do
   {
    // 先执行一遍的代码,然后再执行while循环,如果条件表达式为true则继续执行do内的循环代码
   } while (条件表达式);                                                                                
  • goto 
 goto temp;  //执行这一段会直接跳到temp标记的地方
    printf("ttttttttt\n");
    printf("ttttttttt\n");
    printf("ttttttttt\n");
    printf("ttttttttt\n");
        temp:
    printf("tt12121212\n");//整个代码只输出这一行

八、数组

  • 数组分类
// 字符数组
char s[10];
// 短整型的数组
short int a[10];
// 整型数组
int a[10];
// 长整型数组
long int a[10];
// 浮点型的数组(单、双)
float a[6];
double a[8];
// 指针数组
char *a[10];
int *a[10];
// 结构体数组
struct stu boy[10];
  • 数组定义
// 定义一个名为b的数组,长度为10,且每个元素都是char类型
char b[10];
// 定义一个二维数组
int int a1[3][4];
// 定义多维数组
int a[8][3][4][5];//四维数组
  • 数组初始化
 // 定义数组
    int a[][3];
    // 初始化数组
    int a= {
        {1,2,3},
        {4,5,6},
        {7,8,9}
    };
  • 数组的引用
int a[3][3] = {
        {1, 2, 3},
        {4, 5, 6},
        {7, 8, 9}};

    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            printf("%d\n", a[i][j]);
        }
        printf("\n");
    }

九、函数 

  •  有参函数
// 有形参的函数:
// a,c为形参,fun为函数名称,fun前的int为函数的返回值类型
int fun(int a,int c){
    return a+c; //a+c返回的值为int类型对应fun前的int
}
  • 无参函数
// 无参函数:
void fun(){

}

 

 

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WDEP

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值