编程学习笔记整理(c 语言)

变量
变量命名规则
1)由数字、字母、下划线构成
2)变量名开头不能为数字
3)变量名的含义能够表达变量的用途
4)变量名不能与C语言中的关键字重名
5)区分大小写

1.基本数据类型 (内存基于32位机器)
字符型 char (1字节)
无符号字符型 unsigned char (1字节)
短整型 short int (2字节)
整形 int (4字节)
长整形 long int (4字节)
单精度浮点型f loat (4字节)
双精度浮点型 double (8字节)

2.标准输入输出及运算符
在linux中用 man命令查找帮助手册 man scanf/man printf/ man stdio.h
格式化输入输出:scanf printf
占位符
%c 单个字符
%d 十进制有符号整形
%ld 十进制有符号长整形
%f 有符号单精度浮点型
%lf 有符号双精度浮点型
%u 十进制无符号整形
%x 转化为16进制输出
%o 转化为八进制树池
%p 输出地址(初学代码常用的)
%s 字符串输出
%g 自动控制小数位数

标志位
-号 结果左对齐,右边填空格
+号 输出符号(正号或负号)
空格 输出值为正时冠以空格,为负时冠以负号
#号 对c,s,d,u类无影响: 对o类,在输出时加前缀o;对x类,在输出时加前缀0x;对e,g,f类当结果有小数时才给出小数点

非格式化输入输出:getchar putchar
字符串输入输出:gets puts

运算符:主要关注运算符的优先级

数据存储方式:了解原码 反码 补码

逻辑运算符(&& ||):注意短路断路现象(如果前面的条件已经决定运算符结果,后面的条件将不执行,有运算也将不执行)

3.分支语句
以及各种嵌套
if{}
if{}else{}

switch ()
{
case:
break;
default:
break;
}

4.循环语句
while(){}
do{}while()
for(;;){}

5.全局变量
先了解一下linux的内存结构
全局变量:
数据段的静态存储区,没有初始化或为0,存储在静态存储区的末区(bss),否则在初始化(data区),当没有初始化时,默认初始化为0,没有定义类型,默认类型为int
作用域:整个可执行程序中
生命周期:程序执行期间一直存在

局部变量:
分配空间:栈,不会默认初始化,
生命周期:定义开始到所在语句的 } 结 束
作用域: 定义开始到所在语句的 } 结 束,

在相同作用域不可重复定义、声明

分开文件,全局变量可多次声明,不可多次初始化,而且作用域会跨文件。

防止文件重命名
#ifndef __FUN
#define __FUN

#endif

6.数组

7.字符数组
字符数组:存放字符的数组。
字符串:在系统中的存放的方式是以’\0’结尾的字符数组。
gets和puts因为不安全,会警告,改用fgets和fputs

8.函数
函数的声明、定义和调用
返回值 函数名(形参列表){
函数体}
函数传参注意:如果实参和形参数据类型不一致会进行隐式转换,符合转换规则不会报错,不符合会报错。
注意传值和传址的区别

9.位操作
按位与,或,异或,左移,右移

10.指针及段错误
指针:
存储数据地址的数据类型
大小和系统位数有关
后加加优先级无法用()提升

指针常量 和常量指针

常量指针:表示无法通过指针修改里面的常量值
常量指针:指针是个常量,指向的地址不可变,但指向的数据可改

11.堆空间及应用
malloc calloc realloc free四个函数的应用

memcpy memset

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值