初识C语言

一.认识c语言:

     c语言是一种通用的高级语言,面向过程式的计算机程序设计语言。       

  1. 易于学习。
  2. 结构化语言。
  3. 它产生高效率的程序。
  4. 它可以处理底层的活动。
  5. 它可以在多种计算机平台上编译。

二.数据类型:

char字符数据1字节
short短整型2字节
int整形4字节
long长整型4字节
long long更长的整形8字节
float单精度浮点数4字节
double 双精度浮点数8字节

        这么多中类型,因为大小的不同。所能选着的范围就不同,在知道所需字符空间大小时选择合理的可节约空间。

        计算机中单位之间的转换: bit(比特位),byte(字节),kb,mb,gb。

1gb=1024mb
1mb=1024kb
1kb=1024byte
1byte=8bit

          浮点数的意思:小数点可以浮动的数就叫浮点数。

          单精度浮点和双精度浮点的区别

  1.                 float小数部分只能精确到后面6位,加上小数点前的一位,即有效数字为7位。
  2.                 double小数部分以精确到小数点后15位,有效位数为16位。

三.变量

        局部变量:

                1.在{}内定义的是局部变量。

                2.局部变量的作用域是变量所在的局部范围。

                3.局部变量的生命周期是:进入作用域生命周期开始,出生命周期结束。

        全局变量:

                1.{}外定义的就是全局变量。

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

                3.全局变量的生命周期是:整个工程的生命周期

        注意事项:

                1.变量创建的时候,要给一个初始化的值,不然会是一个随机数。

                2.sizeof() //谁的大小

             

四.常量

        1.字面常量 。       例:3,4,56,621.......

        2.const修饰的常变量 。       例:const  a = 10

        3.#define定义的标识符常量 。      (后面会有详细讲解)

        4.枚举常量(数字由字符来表示,其意义表达更加的明确)。例: enum color{RED,GREEN,BLUE}

五.字符串

        1.双引号引起来的就是字符串。(里面有一串字符)

        2.\0是字符串的结束标志,不算作字符串内容。

        3.strlen("")求字符串长度的函数。

        4.%s打印字符串。

六.转义字符

        1.\?               在连续写多个问号的时候使用。

        2.\"               用于表示一个字符串内部的双引号。

        3.\a              警告字符,蜂鸣。

        4.\t               水平制表符。

        5.\xdd          dd表示2个16进制的数字。

        6.\'               用于表达字符常量'。

        7.\\              用于表达一个反斜杠。

        8.\n             换行。

        9.\r              回车。

        10.\ddd       表示1-3个八进制数字。

七.选择语句和循环语句

        1.if判断语句,if.... else..... , elseif。

        2.三元表达式:a>b ?  c:d。

        3.switch语句实现多分支选择结构。

        4.while和do...while循环。

        5.for循环,嵌套for循环。

        6.break结束循环,continue提前结束循环。

八.函数

        1.函数其实就是功能,每一个函数用来实现一个特定功能。函数的名字应反应其代表的功能。

        2.%d        打印整形

        3.%c        打印字符

        4.%s        打印字符串

        5.%f        打印float类型

        6.%lf       打印double类型

九.数组

        1.一组相同类型元素的集合 int arr[5] = {1,2,3,4,5}

        2.下标从0开始

        3.strlen(arr) 这个方法作用于数组是个随机数。

        4.数组初始化是四个字符大小,如果只定义了三个值,最后一个默认为0.strlen()会把0解析成\0。

        5.c99标准之前数组的大小由常量或常量表达式来制定。c99标准之后,支持了变长数组。这个时候运行数组的大小是变量,但是这种指定方式的数组不能初始化。

        

十.操作符

1.算数操作符

+        -        *        /        %

 2.位移操作符

>>        <<

3. 位操作符

 &        ^        |

 4.赋值操作符

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

5. 关系操作符

>        >=        <        <=        !=(不相等)        ==(相等)

 6.逻辑操作符

&&        逻辑与                                        ||        逻辑或        

 7.单目操作符

        !       逻辑反操作                                 -        负值

       +       正值                                           &        取地址符

   sizeof    操作数的类型长度                     ~        对一个数的二进制按位取反

       --        前置,后置--                              ++       前置,后置++

        *        间接访问操作符(解引用)       (类型)    强制类型转换   

8.逗号表达式

 exp1,exp2,exp3,.......expN

 9.下标引用,函数调用和结构成员

[ ]               ()                .                ->

10.注意:

单目操作符:只有一个操作数的操作符。

除法:除号两端都是整数的时候,执行的是整数除法,如果有一个浮点数就执行浮点数的除法。

位移操作符:涉及到二进制。

逗号表达式:逗号表达式就是用逗号隔开的一串表达式,特点是从左往右依次计算,整个表达式的结果是最后一个表达式的结果。

十一.常见关键字

        1.C语言本身内置的,关键字都是语言本身预先设定好的,用户是不能字节创造关键字的。

        

signed有符号的
unsigned无符号的    
enum枚举
struct结构体
union联合体
void
const常属性
extern声明外部符号的
register寄存器
static静态的
return函数返回值
typedef类型重命名
static修饰变量和函数的

 2.关键字static

  •         static修饰局部变量的时候,局部变量出了作用域,不销毁,被称为静态局部变量。本质上,static修饰局部变量的时候,改变了变量的储存位置的,影响了变量的生命周期,生命周期变长,和程序的生命周期一样。
  •         全局变量是具有外部链接属性的。static修饰全局变量的时候,被称为静态全局变量,这个全局变量的外部属性链接就变成了内部链接属性。其他源文件.c文件就不能再使用这个全局变量了。
  •         函数是具有外部链接属性的,static修饰函数的时候,被称为静态函数,会把函数的外部链接属性改变成内部链接属性。

        

3.关键字register

        电脑上的存储设备有:硬盘,内存,高速缓存(cache),寄存器(集成到CPU上的)从左往右,速度从快往右,速度从慢到快,内存从大到小。

之前的cpu和内存联动,因为现在的cpu的计算速度越来越快,内存的速度跟不上。

现在cpu去寄存器里面拿数据,内存里的数据往高速缓存里存,高速数据往寄存器里存,可以保证大部分需要的数据可以再寄存器里面找到,这样整个效率就高起来了。

C语言中register只是建议把这个设置的变量放到寄存里。

十二.define定义常量和宏

        #define 可以用来定义符号,定义宏。宏是有参数的。

       #define   ADD(x,y)  ((x)+(y))

        ADD是宏的名字,x和y是宏的参数,没有类型,(x+y)是宏体

十三.指针

        指针:内存是给划分成一个个小的内存单元,每个内存单元的大小是1个字节(1byte)。为了能够有效的访问到内存的每个单元,就给内存进行了编号,这些编号被称为内存单元的地址,这些地址就是指针。

Int* p =&a。

Int是指的对象所存地址的变量类型 *说明p是指针变量。

*p = 20 可以通过*p找到a 然后改变a里面的值

不管什么类型的指针,都是在创建指针变量

指针变量是用来存放地址的

指针变量的大小是取决于一个地址的存放的时候需要多大空间

32位的机器上的地址:32bit位 – 4byte 所以指针变量的大小是4个字节

64位的机器上的地址:64bit位 – 8byte 所以指针变量的大小是8个字节

十四.结构体

        结构体(struct)是把一些单一类型组合在一起的做法。

Struct Stu 算是结构体类型         s算是结构体对象          s.name 就是结构体对象.成员名

结构体指针变量->成员名

Ps -> name 

指针可以用箭头,结构体用点。

        

        

  • 19
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值