C语言
C语言学习
我一定会吃下怪人细胞
这个作者很懒,什么都没留下…
展开
-
结构体传参
结构体传参struct S{ int data[1024]; int num;};struct S s = { {1,2,3,4}, 1000 };//结构体传参void print1(struct S s){ printf("%d\n", s.num);}//结构体地址传参void print2(struct S* ps){ printf("%d\n", ps->num);}int main(){ print1(s); //传结构体 print2(&s原创 2020-06-17 14:20:04 · 212 阅读 · 0 评论 -
结构体内存对齐
计算计算结构体的大小typedef struct Test{ char a; char b; int c;}Test;int main(){ Test t; printf("%p\n", &t); printf("%p\n",&t.a); printf("%p\n",&t.b); printf("%p\n",&t.c); printf("%d\n",sizeof(t)); system("pause"); return 0;}这个结构体原创 2020-06-17 13:57:52 · 76 阅读 · 0 评论 -
C字符串函数模拟实现
size_t Strlen(const char* str){ assert(str != NULL); size_t length = 0; for (; str[length] != '\0'; ++length); return length;}char* Strcpy(char* destination, char* source){ //判断参数有效性 //c语言中无法避免野指针 assert(source != NULL && destination !=原创 2020-06-16 14:50:24 · 71 阅读 · 0 评论 -
C语言数据存储
原码,反码,补码三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位表示方法各不相同。原码直接将二进制按照正负数的形式翻译成二进制就可以。反码将原码的符号位不变,其他位依次按位取反就可以得到了。补码反码+1就得到补码。正数的原、反、补码都相同。对于整形来说:数据存放内存中其实存放的是补码。...原创 2020-06-14 11:03:01 · 115 阅读 · 0 评论 -
结构体
结构体类型的声明结构体初始化结构体成员访问结构体传参**结构体类型的声明 **struct tag{member-list;}variable-list;例如typedef struct Stu{char name[20];//名字int age;//年龄char sex[5];//性别char id[20];//学号}Stu;//分号不能丢结构的成员可以是...原创 2020-05-03 21:55:27 · 91 阅读 · 0 评论 -
指针
1.指针就是变量,用来存放地址的变量(存放在指针中的值都被当成地址处理)。2.指针是用来存放地址的,地址是唯一标识的一块地址空间。3.指针的大小在32位平台是4个字节,在64位平台是8个字节。4.指针也有不同的类型,指针的类型决定对指针解引用的时候有多大的权限(能操作几个字节)。比如char* 的指针解引用就只能访问一个字节,而int*的指针的解引用就能访问四个字节。5.指针和数组:数组名...原创 2020-05-02 23:30:38 · 90 阅读 · 0 评论 -
操作符
算数运算符+ - * / %除了 % 操作符之外,其他的几个操作符可以作用于整数和浮点数。对于 / 操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。% 操作符的两个操作数必须为整数。返回的是整除之后的余数...原创 2020-05-01 22:29:26 · 148 阅读 · 0 评论 -
二维数组
二维数组的创建//数组创建int arr[3][4];char arr[3][5];double arr[2][4];二维数组的初始化//数组创建int arr[3][4];char arr[3][5];double arr[2][4];//数组初始化int arr[3][4] = {1,2,3,4};int arr[3][4] = {{1,2},{4,5}};int ...原创 2020-04-29 16:03:07 · 76 阅读 · 0 评论 -
一维数组
一维数组定义:type_t arr_name [const_n];//type_t 是指数组的元素类型//const_n 是一个常量表达式,用来指定数组的大小//如以下几种//代码1int arr1[10];//代码2int count = 10;int arr2[count];//数组时候可以正常创建?//代码3char arr3[10];float arr4[1];...原创 2020-04-29 15:26:44 · 82 阅读 · 0 评论 -
函数的递归调用
程序调用自身的编程技巧成为递归,它可以将一个大型复杂的问题层层分解成与原问题相似的小问题通过少量的代码达到大事化小。递归的两个必要条件1.存在限制条件,当满足这个限制条件的时候,递归便不再继续。2.每次递归在这里插入代码片调用之后越来越接近这个限制条件。//不创建临时变量求字符串长度#include<stdio.h>#include<Windows.h>int...原创 2020-04-28 21:38:21 · 129 阅读 · 0 评论 -
函数
库函数&&自定义函数常见库函数:IO函数字符串操作函数字符操作函数内存操作函数时间/日期函数数学函数其他库函数自定义函数由程序员自己设计和库函数一样有函数名,返回值类型和参数。ret_type fun_name(para1, * ){statement;//语句项}ret_type 返回类型fun_name 函数名para1 函数参数例如比较两...原创 2020-04-28 14:52:08 · 101 阅读 · 0 评论 -
循环语句
while&&for&&do whilewhile//while 语法结构while(表达式)循环语句在while 循环中:只要遇到break,就停止后期的所有的循环,直接终止循环。 所以:while中的break是用于永久终止循环的。continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,而是直接跳转到while语...原创 2020-04-23 14:53:57 · 74 阅读 · 0 评论 -
分支语句
if语句(选择结构)语法结构:if(表达式)语句;if(表达式)语句1;else语句2;//多分支if(表达式1)语句1;else if(表达式2)语句2;else语句3;if书写格式对比//代码1if (condition)return x;return y;//代码2if(condition){return x;}else{return ...原创 2020-04-21 16:18:36 · 78 阅读 · 0 评论 -
变量,常亮
变量–会改变的值;常量–不会变的值;变量变量的定义例如:int age = 150;float weight = 45.5f;char ch = ‘w’;变量分为局部变量和全局变量,当局部变量和全局变量同名时优先使用局部变量;作用域局部变量的作用域是变量所在的局部范围。全局变量的作用域是整个工程。生命周期局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。...原创 2020-04-21 15:49:38 · 205 阅读 · 0 评论