c语言学习三天,能达到什么水平。

本文介绍了C语言的基本语法,包括关键字、变量声明、数据类型如char、int、float等,以及指针、数组、结构体和函数的使用。还提到了存储类如auto和static,以及常量和宏的定义。此外,文章讨论了类型转换、函数的使用,特别是strlen()和sizeof()函数,并简述了二分查找算法。
摘要由CSDN通过智能技术生成

c语言基本语法
    表示符
        用来标识变量,函数,或者其他用户自定义项目名称
    关键字
        break ,case , char ,if ,return等等 
            关键字
                auto 自动所有的变量在数据类型前面都有个auto
                break
                case
                char
                const  修饰常属性变量
                continue
                default
                do
                double
                else
                enum
                extern 声明外部符号
                    变量的声明
                        需要建立存储空间的
                            例如: int a 在声名的时候就已经建立了存储空间
                        不要要建立存储空间的
                            extern关键字声明变量名而不定义它 例如:extern int a 其中a可以在别的文件中定义。
                float
                for   写单片机语言时定义i时只能在循环体外部定义;
                goto
                int
                long
                register 寄存器
                return
                short
                signed 有符号的
unsigned 无符号的
                sizeof() 计算的是变量或类型所占空间的大小,单位是字节 
                static
                    修饰局部变量 时局部变量出了作用域不会被销毁。改变了变量的存储位置
                    修饰全局变量 时这个全局变量的外部连接属性就变成了内部链接属性
其他源文件就不能使用了.
                    修饰函数 时这个函数的外部连接属性就变成了内部链接属性
其他源文件就不能使用了.
                struct
                switch
                typedef 类型起别名  
例如:typedef unsigned int uint
                union
                unsigned
                void
                volatile
                while
    c语言中的空格,称之为空白行,c编译器会完全互留它

c数据类型
    基本数据类型
        char
            1字节  
        int
            2字节/4字节
            整型
        shout
            2字节
            短整型
        long
            4字节
            长整型
        float
            4字节
            单精度浮点型
        浮点数
            浮点数的四舍五入,不能用肉眼看到的数值来计算,因为浮点数在内存中有可能不能精确的保存 
        double
            8字节
            双精度浮点型
        long double
            16字节
    枚举类型
        用来定义在程序中只能赋予其一定的离散数值的变量
    void
        表明该数据类型没有返回值
    派生类型
        包括数组类型,指针类型和结构类型

类型转换
    隐式类型转换
        较小的数据类型转化为较大的数据类型;例如:int转为long/float转为double。隐式类型转换可能会导致数据精度丢失或截断
            实例:int i =10;
          float f = 4.1;
          double = i + f;
    显式数据类型
        强制数据类型转换可以在必要时对数据类型进行更精准的控制,但也可能会数据丢失或截断
            实例:double =2.13123;
          int = (int)d;

全局变量的作用域是整个工程

常量
    常量可以是任何基本数据类型,常量就是常规的变量,只不过常量的值再顶以后不能被修改
    字面常量 就是自负床常量 直接写出来的数字
    const 修饰的常量 不能被改变
    #define  定义标识符常量
    枚举常量 enum 
枚举-一 一 列举

存储类
    auto存储类
        函数开始时被创建,函数结束时被销毁
            auto int xx;
    register存储类
        register 存储类定义存储在寄存器,所以变量的访问速度更快,但是它不能直接取地址,因为它不是存储在 RAM 中的。在需要频繁访问的变量上使用 register 存储类可以提高程序的运行速度。
    static存储类
        可以在函数调用之间保持局部变量的值
    extern存储类

函数
    自定义函数:
返回值类型  函数名称(){

}
    strlen() 求字符串长度
    sizeof() 计算的是变量或类型所占空间的大小,单位是字节 


    #define 宏名(x,y) ((x)+(y))

数组
    数据类型  数组名[]  同一个数组存储的是相同元素的集合
    赋值方式 例如:char a[10] ="hhello"
注意:不能先定义再给它赋值,如char a[10]; a[10]="hello";这样是错误的!
    strcpy 赋值
char a[10]; strcpy(a,"hello");
    c99之前数组种[] 若内部填写数则必须上常量
c99之后 放入变量则不能进行初始化

指针 例如: int* p = &a
    1.存放指针(地址)的变量就是指针变量
2.int 说明指向的对对象是int类型的
3.*代表p是一个指针 变量
4.&取地址 
例如:int 类型创建出来的变量占4个字节,取变量的地址时,咱们取得是第一个字节所占的地址
    //不管是什么类型的指针,都是在创建指针变量
//指针变量使用来存放地址的
//指针变量的大小取决于一个地址存放的时候需要多大的空间
//32位机器上的地址:32bit位 - 4byte,所以指针变量的大小是4个字节
//64位机器上的地址:64bit位 - 8byte,所以指针变量的大小是8个字节

结构体

结构化
    分支语句(选择结构)

二分查找
    int main()
{
    int k=7 ;
    int arr[] = {1,2,3,4,5,6,7,8,9,10};
    int right = sizeof(arr)/sizeof(arr[0]);
    int left = 0;
    while(left<=right)
    {
       int mid = left + (right - left)/2;
         if(k>arr[mid]){
                left = mid +1;
        }
         if (k<arr[mid])
        {
            right = mid -1;
        }
        else{
             printf("找到了,下表位%d",mid);
             break;
        }
    }
    
    return 0;
}
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值