变量
可修饰变量关键词:
三大特点:
作用域:
生命周期:
存储区域:
数据类型:
类型之间的转换:
规则与优先级
基本数据类型
字符类型:
字符/字符串/
字符串函数
数组类型:
指针类型:
构造数据类型:
结构体与公用体区别:
字节对齐:
引出对指针的理解
定义:
作用:
内存空间大小
地址分为不同类型
常见指针类型:
多级指针:
作用与用法:
函数指针与指针函数(开启对函数的理解)
野指针:
定义:
产生问题:
内存泄漏问题:(理解内存泄漏)
注意事项
智能指针:
内存
内存分配图:
存储方式:
静态/动态:
存放的变量:
对象
分配与释放(malloc与free)
堆与栈区别:
静态存储区:(static关键词->关键词)
内存泄漏:
函数:
定义:
为什么使用函数:
函数的语法:
函数三要素:
函数的调用过程:
传值Vs传地址
返回值:
函数的可重入性
常用关键字(c/c++区别)
register:
作用:
原理:
场景:
与volatile对比:
volatile:
作用:
原理:
场景:
。。。
static:
。。。
与const区别:
const:
。。。
inline:
。。。
与#define区别(引出预处理,编译,汇编,链接)
#defineVs typedef
c语言编译过程
预处理:
任务:
头文件展开:
宏替换:
概念:
注意:
编译:
汇编:
链接:
位运算:
6种操作符
位操作使用技巧:
1.判断奇偶
2.交换两数
3.变化符合
4.求绝对值
位操作作用法
#include <stdio.h>
int my_strlen(char *str)
{
int count = 0;
while(*str != '\0')
{
count++;
str++;
}
return count;
}
int my_strcmp(char*des, char* str)
{
while(*des != '\0' && *str != '\0'&& *des == *str)
{
des++;
str++;
}
return *des - *str;
}
char *my_strcpy(char *des, char*str)
{
int i=0;
while(str[i] != '\0')
{
des[i] = str[i];
i++;
}
des[i] = '\0';
return des;
}
char *my_strcat(char*des, char*str)
{
}
void main(int argc, char *argv[])
{
char a[12];
printf("%d\n",my_strlen("hello"));
printf("%d\n",my_strcmp("hoo1","hoola"));
printf("%s\n",my_strcpy(a,"wwww"));
return ;
}