C语言基础
kkkddde
祝你快乐
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
动态内存管理
1.为什么存在动态内存开辟 普通的开辟方式: int a=0; int arr[5]={0}; 上述内存开辟方式是在栈上开辟的,大小固定,声明数组时且必须给定数组长度,它所需要的内存在编译时分配,但很多时候我们所需要的空间大小在程序运行时才能知道,这时上述的开辟方式就不行了,所以需要通过动态内存开辟的方法。 2.动态内存函数 malloc void* malloc(size_t size); 作用申请一块连续的空间并返回指向这段空间的指针。 如果开辟成功,则返回一个指向开辟好空间的指针。 如果开辟失原创 2020-11-10 12:44:41 · 216 阅读 · 0 评论 -
C 语言基础位段 枚举 联合体
一.结构体实现位段 概念:位段和结构体的声明,不过位段的成员和结构体有两处不同 1.位段的成员必须是int ,unsigned int ,signed int或者char 2.位段后面需要加上冒号和数字 例如: struct A { int _a:2; int _b:5; int _c:10; int _d:30; } 位段的内存大小计算:先开辟第一个成员所占至少需要的字节,第二个成员所占比特位如果能放进去剩下的比特位中,则不开辟,如果放不进去,则再开辟第二个成员所需要的字节,以此类推。原创 2020-11-05 11:39:21 · 313 阅读 · 0 评论 -
C语言 什么是结构体内存对齐
结构体 结构体是一些值的集合,这些值被称为成员变量,每个成员类型也可以不同。 1.结构体的声明 例如创一个学生的结构体 struct student { char name[20]; int age; char sex[5]; };//分号不能忘记 特殊声明: 匿名结构体类型:不完全声明 struct { char name[20]; int age; }stu; 结构体的自引用 struct Node { int data; struct Node* next; } typedef作用:将结原创 2020-11-03 19:08:25 · 279 阅读 · 0 评论 -
字符串函数和字符函数 c语言
字符函数和字符串函数 函数介绍 1. 求字符串长度 strlen size_t(const char * str) 字符串以’\0’为结束的标志 strlen返回的是遇到’\0’前字符的个数 函数的返回值是size_t(无符号) 模拟实现 1.递归 不创建临时变量 #include<stdio.h> #include<assert.h> size_t my_strlen(char * str) { if (*str == '\0') { return 0; } ret原创 2020-10-29 21:59:59 · 408 阅读 · 0 评论 -
C语言 --strlen库函数的三种实现方式
1.递归 不创建临时变量 #include<stdio.h> #include<assert.h> size_t my_strlen(char * str) { if (*str == '\0') { return 0; } return 1 + my_strlen(str + 1); 2.指针相减 size_t my_strlen(const char *str) { assert(str != NULL); const char *start = str; w原创 2020-10-20 10:50:21 · 384 阅读 · 0 评论 -
c语言-指针基本知识
指针是一个存放地址的变量,存放的地址指向了另一个变量。 int main() { int a = 4; int * p = &a; printf("%d\n",* p);//打印p指向的(整形变量a的内容) printf("%p\n", p);//打印p所存储的(a的地址) printf("%p\n", &a);// 打印p所存储的(a的地址) return 0; } *说明p是一个指针 .int 说明p指向了一个整型变量a. &a即是取a的地址. 通过指针改变变量原创 2020-08-13 21:46:18 · 247 阅读 · 0 评论 -
c语言 static
#include<stdio.h> void test() { int a = 1; a++; printf("%d\n", a); } int main() { int i = 0; while (i < 10) { test(); i++; } return 0; } 如上代码,程序运行结果为10个2,但当给test里的int a 加上 static修饰时,程序的巡行结果会发生变化,变为2,3,4,5,6,7,8,9,10,11 原因:static 可以修饰原创 2020-08-13 15:47:12 · 195 阅读 · 0 评论 -
c语言 字符串 转义字符
关于字符串,例如用char创建一个字符串数组 int main() { char arr1[] = { "abcde" }; char arr2[] = { 'a', 'b', 'c', 'd', 'e' }; printf("%s\n", arr1);//%s打印字符串 printf("%s\n", arr2); return 0; } 对于arr1,打印结果是abcde 对于arr2,打印结果是abcde加乱码。 这种由双引号引起来的一串字符称为字符串字面值,或者简称字 符串。 注:字符串的原创 2020-08-10 13:07:35 · 1130 阅读 · 0 评论
分享