C语言初阶总结

C语言初阶总结


首先声明一下子,还没有总结完,等有时间了,好好补充



首先计算机只认识二进制
数据类型
在32位操作系统的前提下
  char 字符类型(1个字节)
  short 短整型(2个字节)
  int 整形(4个字节)
  long 长整型(4个字节)
  long long 更长整型(8个字节)
  float 单精度浮点数(4个字节)
  double 双精度浮点数(8个字节)

       程序只要运行起来,必须要加载到内存
       类型决定:a.开辟空间的大小 b.对应操作
  注意:C语言没有字符串类型


变量和常量
   变量分为:全局变量和局部变量
   定义变量:1.开辟空间2.写入内容
   变量的使用原则:先定义再使用
   局部变量:在函数内或代码块内定义
   全局变量:在函数外或代码外定义

局部变量的作用域:在本函数或者代码块中有效
               生命周期:随函数或代码块
全局变量作用域:从其定义处往下都有效
               生命周期:程序启动时被创建,程序结束时被释放
  常量:
       (1)字面常量
       (2)const常量
       (3)#define定义的标识符常量
       (4)枚举常量


字符串和转义字符串
字符串:用双引号括起来的叫字符串
      字符串以“\0“结尾
       字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符串内容。
转义字符:把普通字符转为特殊字符或把特殊字符转为字面值

转义字符 释义(部分)
\?       在书写连续多个问号时使用,防止他们被解析成三字母词
\’        用于表示字符常量’
\“       用于表示一个字符串内部的双引号
\        用于表示一个反斜杠,防止它被解释为一个转义序列符。
\a       警告字符,蜂鸣
\b      退格符
\f       进纸符
\n       换行
\r       回车
\t       水平制表符
\v       垂直制表符


选择语句
      if       else


循环语句
      while
      for
      do       while


函数
       C语言没有布尔类型,用0表示假,用非0表示真
      C语言的返回值不写就会有默认的返回值,默认的返回值为整型

      函数传参就要形成临时变量
      临时变量不初始化或赋值一般都是随机值

传值调用:
       函数的形参和实参分别占有不同内存块,对形参的修改不影响实参
传址调用:

  1. 传址调用是把函数外部创建变量的内存地址传递给函数参数的一种调用函数的方式。
  2. 这种传参方式可以让函数和函数外边的变量建立起正真的联系,也就是函数内部可以直接操作函数外部的变量。

递归的两个必要条件:

  1. 存在限制条件,当满足这个限制条件的时候,递归便不再继续。
  2. 每次递归调用之后越来越接近这个限制条件。

数组

数组:具有相同元素类型的集合

注意:数组创建,[ ]中要给一个常量才行,不能使用变量

数组的初始化: 是指,在创建数组的同时给数组的内容一些合理初始值(初始化)。

总结:

  1. 数组是使用下标来进行访问的,下表从0开始
  2. 数组的大小可以通过计算得到

操作符
一,算数操作符:
首先了解一下算术标识符都有哪些:+、-、*、/、%。
          +:分别用于整数和浮点数的加法。
          -: 分别用于整数和浮点数的减法
           *: 分别用于整数和浮点数的乘法
          /: 分别用于整数和浮点数的除法
          %:用于两个整数之间相除取余数

注意:
1.除了%操作符之外,其他的几个操作符都可以用于整数和浮点数。
2.对于/操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。
3.%操作符的两个操作数必须为整数。返回的是整除之后的余数。

二,移位操作符:
     1、算术右移;
     2、逻辑移位。

算术右移情况指的是:二进制数有正负之分,补位时要注意符号位;
逻辑移位情况指的是:不需要考虑符号产生的问题,直接补0即可。

三,位操作符。
位操作符包括:&(按位与)、|(按位或)、^(按位异或)、~(按位取反)。
          & 按位与(如果两个数字都为1,结果为1,否则位0)
          | 按位或(如果两个数字都为0,结果为0,否则为1)
          ^ 按位异或(如果两个数字相同,结果为0,否则为1)
          ~按位取反(针对这个数字,0变为1,1变为0)

四,赋值操作符
符号:= += -= *= /= %= >>= <<= &= |= ^=
符号说明:
          = 为简单赋值操作
          += -= *= /= %= >>= <<= &= |= ^= 为复合赋值操作

五,单目操作符
     单目操作符有:!(逻辑反操作、非)、&(取地址符)、sizeof(求长度)、~(按位取反)、++、–、*、(类型)等。

需要注意的是:
1、&是取地址符,%p打印地址。
2、sizeof()是操作符,不是函数!
3、++的前置和后置。举例说明:

六,关系操作符。
          关系操作符主要是:==、>=、<=。
          主要出现在条件的比较判断上,如:if语句、for循环等。(没啥可说的)
七,逻辑操作符
          符号: && ||
符号说明:
          && 为逻辑与操作(只要有一个表达式为假便为假,不再执行后面的表达式)
          || 为逻辑或操作(只要有一个表达式为真便为真,不再执行后面的表达式)

八,条件操作符
          符号:exp1 ? exp2 : exp3
符号说明:
          exp1 ? exp2 : exp3 为目表达式,若表达式1(exp1)为真则返回表达式2(exp2),否则返回表达式3(exp3)

九,逗号表达式
          符号:exp1, exp2, exp3, …, expN
符号说明:
          exp1, exp2, exp3, …, expN 为逗号表达式(用逗号隔开的表达式),从左往右依次执行。整个表达式的结果为最后一个表达式的结果。

十,下标引用、函数调用和结构成员
下标引用
符号:[ ]
符号说明:
          [ ] 为下标引用操作符,有两个操作数(数组名和索引值)
函数调用
符号:()
符号说明:
          () 函数调用操作符 接受一个或者多个操作数:第一个操作数是函数名,生育的操作数就是传递给函数的参数
结构成员
符号: . ->
符号说明:
          . 为结构体对象.成员名
          -> 为结构体指针->成员名


指针

          指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电
脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元

          指针是用来存放地址的,地址是唯一标示一块地址空间的。
          指针的大小在32位平台是4个字节,在64位平台是8个字节。

          指针的类型决定了指针向前或向后走一步有多大
指针的解引用:指针的类型决定了,对指针解引用的时候有多大的权限(能操作几个字节)。

指针运算:
      指针± 整数
      指针-指针
      指针的关系运算

注意:对指针加1,是加上其所指类型的大小
指针和数组:
       数组名表示的是数组首元素的地址。
指针数组:存放指针的数组

整型提升,看自身类型,如果自身无符号高位补0,有符号高位补1
两指针指向一个数组,指针相减代表的是两个指针直接元素的个数,而具体有少个元素由指针类型决定
到底是指针数组还是数组指针看优先级

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值