C语言基础(萌新版)

从0开始学习c语言

要学习C语言的话,首要就是要学习一下代码的基本框架。

#include<>

//添加头文件

//头文件中包含了很多常用的函数(别人已经写好的),要使用这些函数时必须要声明该函数。

//主函数(运行的代码一般都写入主函数)

int  main(int  argc,  char  *argv[]){

return 0;       

//函数返回的数据,0代表成功,-1代表错误或者失败

}

一个标准的C语言代码格式就是这样。

先写一个简单的Hello World代码:

#include <stdio.h>

int main(int argc, char *argv[]){
    printf("Hello World");
}

再从这之中详细讲解一下。

1.注释

  注释,是解释/描述/备注性的语言,不会被编译器翻译成机器码,相当于是给程序员观看,注释可以一次注释一行或者多行。

/*                */        可以注释一行或者多行

//                           注释一行代码

2.词法符号

C语言中词法符号大致分为五种,分别为 关键字;运算符;分隔符;标点符号;标识符。

2.1.关键字

关键字:标准规定好的一些有特殊含义的字符

1.数据类型(有符号  无符号):

char        short        int        long        float        double        signed(有符号,一般默认)        unsigned(无符号)        enum(枚举类型)

2.存储类型:

auto        static        extern        register        (const,   volatile 用于修饰)

3.控制语句:

if-else        switch-case-default        for        while(do-while)        goto        break        continue(结束本次循环)        break(退出当前语句) 

4.构造

union        struct

5.求字节

sizeof

6.取别名

typedef

7.空类型

void    

2.2.运算符

C语言语法规定的运算符(ps.        不能用数学的思路,机器只看得懂机器语言)

2.2.1.算术运算

+        -        *        /        %(取余)

进行算数运算时一般情况下保证两个数据的数据类型是一致的

整数        做除法运算时,结果只能是整数        5/2 ==> 2

小数        做除法运算时,结果就有整数有小数        5.0/2.0 ==> 2.5

整数        做取余运算时,变换为做除法,得到他的余数

举例

10÷3     ==>3   ....1

10/3     ==>3

10%3     ==>1

2.2.2.逻辑运算

逻辑-将数据看作一个整体,只有真(1或者非零数据)和假(0)

参与逻辑运算       

&&(逻辑与):前后都为真,则结果为真

(1>2)&&(4<5)        结果为假(0)

(1<2)&&(4<5)        结果为真(1)

(1>2)&&(4>5)        结果为假(0)

(1<2)&&(4>5)        结果为假(0)

||(逻辑或):有真则为真,全假结果才是假

(1>2)||(4<5)        结果为真(1)

(1<2)||(4<5)        结果为真(1)

(1>2)||(4>5)        结果为假(0)

(1<2)||(4>5)        结果为真(1)

!(逻辑非):真变假,假变真

!  (1>2)        结果为真(1)

!  (1<2)        结果为假(0)

短路法则

(1>2)&&(5>4)        因为(1>2)已经为假,所以一定是假,不会去计算后面的

(1<2)||(5<4)           因为(1<2)已经为真,所以一定是真,不会去计算后面的

这样子能降低计算量

2.2.3.关系运算

判断两个数或者两者之间的关系

>        <        >=        <=        !=        ==(等于)

关系成立则结果为真(1),关系不成立则为假(0)

1 == 2        结果为假(0)

1 != 2         结果为真(1)

3 > 3          结果为假(0)

3 >= 3        结果为真(1)

2.2.4.位运算

在进行位运算的时候,其中的位指的是二进制的位,符号位要参与运算

将数据转化成二进制有整除法和拼凑法

整除法:将数据一直除以2取它的余数,知道1为止

拼凑法:将数据分成几个2的不同次方的数相加,再按照次方数+1即为1进行转化二进制

例子:

209÷2 = 104...1   104÷2 = 52...0  52÷2 = 26...0   26÷2 = 13...0   13÷2 = 6...1  6÷2 = 3...0  3÷2 = 1...1   1÷2 = 0...1

209 = 128+64+16+1        ==>     1101 0001

二进制之后进行位运算

&(位与)    |(位或)    ~(位取反)    ^(异或)    >>(右移运算)    <<(左移运算)

6 & 4        ==>        0110 & 0100        ==>        0100        结果为4

6 & 3        ==>        0110 & 0011        ==>        0010        结果为2

3 | 4        ==>        0011 | 0100        ==>        0111        结果为7

3 | 6        ==>        0011 | 0110        ==>        0111        结果为7

~3        ==>        ~0011        ==>        1100        结果为12

异或:相异(不同)为1,相同为0

3 ^ 4        ==>        0011 ^ 0100        ==>        0111        结果为7

3 ^ 6        ==>        0011 ^ 0110        ==>        0101        结果为5

对于右移运算符:

        有符号数进行右移时,左边补符号位(负数左边补1)

右移运算符可以当作除法:除以二的位数次方

左移运算符可以当作乘法:乘以二的位数次方

3 >> 1        ==>        0011向右移动一位        ==>        0001        结果为1

3 << 2        ==>        0011向左移动二位        ==>        1100        结果为12

3 << 4        ==>        0011向左移动四位        ==>        0011 0000       结果为48(按照一个字节来计算的)

3 << 8        ==>        0011向左移动八位        ==>        0000 0000       结果为0(按照一个字节来计算的)

2.2.5.赋值运算

将 等号 右边的值 赋值给 左边 的变量

=

int num = 2;       //num占了4个字节,能存放0 - 2^32 -1

复合赋值运算

+=        -=        *=        >>=        <<=        &=        |=        ^=

num += 5;        ==>        num = num + 5

num -= 2;        ==>        num = num - 2

2.2.6.特殊运算符

1.自增自减运算符

int num = 10;

num ++;	==>	num = num +1 ;
num --;	==>	num = num -1 ;

++ num;	==>	num = num +1 ;
-- num;	==>	num = num -1 ;

做复杂运算时:
++num,	先将num的值自增1,再参与其他运算
num++,	先参与其他运算,再将num的值自增1

--num,	先将num的值自减1,再参与其他运算
num--,	先参与其他运算,
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值