刘总的笔记小站

生活常识,娱乐搞笑,编程技巧,智能家居,深度学习,网络神经,数据挖掘

C语言基础知识和问题总结

1,数字名字取地址,进行加减之后的位移

    int array[] = { 1, ,2 ,3 ,4, 5 };     
    int x = *( *( &array + 1 ) - 1 ); // x is 5
    
    //array is pointer to array first data pointer
    //&array is pointer to array whole data pointer


2,函数入参如何写将内外的两个指针绑定

    char* p = NULL; 
    void func( char ** ptr){
        char * q = ( char* )malloc( 64 );
        ptr = &q;
        return;
    }
    func( &p );


3,C程序的存储空间布局

静态存储区:分为数据区(只读数据区(代码区?在linux中又叫文本段.text)、读写数据区.data)、
未初始化区(BSS)。它们都是在程序编译连接阶段确定。
正文:由CPU执行机器指令的部分,只读共享,内核调用exec从文件读入
初始化的数据:通称数据段,包含函数之外的变量声明并赋值,内核调用exec从文件读入初始化
未初始化的数据: 通称BSS段,包含函数之外的变量声明,由内核调用exec初始化为0

静态存储区:内存在编译时已分配好,整个运行期间都存在。它主要存放静态数据、全局数据和常量
栈区:函数内局部变量在栈上创建,函数执行结束自动被释放,分配的内存容量有限
堆区:亦称动态内存分配。用malloc或new申请任意大小的内存,用free或delete释放内存


4,C 算法 数据结构 排序算法,查找算法

1.插入排序—直接插入排序(Straight Insertion Sort)
2. 插入排序—折半插入排序(二分插入)
3. 插入排序—希尔排序(Shell`s Sort)
4. 选择排序—简单选择排序(Simple Selection Sort)
5. 选择排序—堆排序(Heap Sort)
6. 交换排序—冒泡排序(Bubble Sort)
7. 交换排序—快速排序(Quick Sort)
8. 归并排序(Merge Sort)
9. 桶排序/基数排序(Radix Sort)


5,数据结构:单链表,双链表,二叉树,队列,栈,堆

struct node {
    int nodeData;
    struct node *next; // struct node *prev;
};


6,C语言常用的字符串函数汇总

1)字符串操作 
strcpy(p, p1) 复制字符串 
strncpy(p, p1, n) 复制指定长度字符串 
strcat(p, p1) 附加字符串 
strncat(p, p1, n) 附加指定长度字符串 
strlen(p) 取字符串长度 
strcmp(p, p1) 比较字符串 
strcasecmp忽略大小写比较字符串
strncmp(p, p1, n) 比较指定长度字符串 
strchr(p, c) 在字符串中查找指定字符 
strrchr(p, c) 在字符串中反向查找 
strstr(p, p1) 查找字符串 
strpbrk(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找该集合的任一元素 
strspn(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找不属于该集合的任一元素的偏移 
strcspn(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找属于该集合的任一元素的偏移  
* 具有指定长度的字符串处理函数在已处理的字符串之后填补零结尾符 

2)字符串到数值类型的转换 
strtod(p, ppend) 从字符串 p 中转换 double 类型数值,并将后续的字符串指针存储到 ppend 指向的 char* 类型存储。
strtol(p, ppend, base) 从字符串 p 中转换 long 类型整型数值,base 显式设置转换的整型进制,
      设置为 0 以根据特定格式判断所用进制,0x, 0X 前缀以解释为十六进制格式整型,0    前缀以解释为八进制格式整型
atoi(p) 字符串转换到 int 整型 
atof(p) 字符串转换到 double 符点数 
atol(p) 字符串转换到 long 整型 

3)字符检查 
isalpha() 检查是否为字母字符 
isupper() 检查是否为大写字母字符 
islower() 检查是否为小写字母字符 
isdigit() 检查是否为数字 
isxdigit() 检查是否为十六进制数字表示的有效字符 
isspace() 检查是否为空格类型字符 
iscntrl() 检查是否为控制字符 
ispunct() 检查是否为标点符号 
isalnum() 检查是否为字母和数字 
isprint() 检查是否是可打印字符 
isgraph() 检查是否是图形字符,等效于 isalnum() | ispunct() 

4)内存操作 
memset() 设置内存统一的数据,比如0x00格式 
memcpy() 内存数据拷贝 
memcmp() 内存数据比较


发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
搜索
«   2024年9月   »
1
2345678
9101112131415
16171819202122
23242526272829
30
网站分类
最新留言
文章归档
网站收藏
友情链接
图标汇集
Powered by Z-BlogPHP

  • Copyright ©2021 @liuzong All rights reserved.
  • 陕ICP备17016542号