C语言学习过程
噫吁嚱。
这个作者很懒,什么都没留下…
展开
-
C语言程序的编译
编译流程c——>翻译环境(编译(编译器),链接(连接器))——>运行环境——>exe编译包括:一、预编译(删除注释,替换define) 二、编译(把c代码编译成汇编语言) 三、汇编Linux gcc-E test.c链接包括:一、合并段表 二、符号表的合并和符号表的重定位预编译详解预定义符号原先定义好的:__FILE__ 文件元...原创 2021-09-13 22:20:41 · 170 阅读 · 0 评论 -
C语言——文件
文件操作文件包括:1.程序文件2.数据文件程序文件(.c,.h,.obj,.exe)可以控制数据文件文件类型:1.文本文件(可以看懂)以ASCII字符形式存储2.二进制文件(看不懂)文件缓存区文件指针FILE* PF//文件指针变量定义pf是一个指向FILE类型数据的指针变量,可以使pf指向某个文件的文件信息区(是一个结构体变量),通过该文件信息区中的信息就能够访问该文件int main(){ fopen("test.txt", "r");//相对路径写法 return原创 2021-09-13 21:43:12 · 84 阅读 · 0 评论 -
C语言动态内存
动态内存管理局部变量、函数的形式参数存在于栈区;全局变量、静态变量存在于静态区;动态内存分配存在于堆区。动态内存分配函数介绍mallocint* p = (int*)malloc(10* sizeof(int));//向内存中申请10个整形空间,把地址传给pmalloc返回的是void* 强制转换为int*头文件:#include<stdlib.h>#include<stdlib.h>#include<string.h>#includ.原创 2021-09-13 21:15:54 · 77 阅读 · 0 评论 -
自定义类型详解:结构体、枚举、联合体
结构体定义:一些不同类型变量的集合。数组:相同类型元素的集合。结构体声明struct tag//sturct 结构体关键字{ member - list;//结构体成员}varible-list;//变量列表代码实操:struct stu{ char name[20]; char tele[12]; char sex[10]; int age;}s4,s5,s6;//全局变量struct stu s3;//全局变量int main(){ struc原创 2021-09-11 15:50:55 · 191 阅读 · 0 评论 -
C语言有关函数解析
申请空间malloc:向内存申请空间int *p = malloc(10* sizeof(int));向内存申请10个int空间头文件:#include<stdlib.h>释放空间free()原创 2021-09-03 10:29:36 · 189 阅读 · 0 评论 -
以回调函数实现冒牌排序
#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int cmp_int(const int *e1,const int *e2){ return *(int*)e1 - *(int*)e2;}void swap(char* buf1,char* buf2,int width){ int i = 0; for (i = 0; i < width; i++) { char tmp = *buf1; *bu.原创 2021-08-22 15:43:04 · 87 阅读 · 0 评论 -
C语言指针详解(二)
函数指针数组数组是一个存放相同类型数据的存储空间,那要是把函数的地址存放到一个数组中,那这个数组就叫函数指针数组。int (*parr[10])();回调函数通过函数指针调用的函数。qsort——quick sort——库函数——快速排序void(void *base,size_t num,size_t width,int(*cmp)(const void*e1,const void*e2));第一个参数:待排序数组的首元素地址第二个参数:待排序数组的元素个数第三个参数.原创 2021-08-22 15:42:06 · 97 阅读 · 0 评论 -
C语言指针详解(一)
字符指针char* p = "abcdef";本质不是把abcdef这个字符放到p指针变量里,而是把abcdef首字符的地址放到p中,若被const修饰的类型不能被修改。指针数组用来存放指针的数组int* parr[4];存放整形指针的数组,存放的指针类型都是int*。实例:int main(){ int a = 10; int b = 20; int c = 30; int d = 40; int* arr[4] = { &a,&b,&am原创 2021-08-20 15:27:49 · 140 阅读 · 0 评论 -
C语言数据的存储
内置类型char short int long float double自定义类型数组类型结构体类型(struct)枚举类型(enum)联合类型(union)指针类型空类型两种数据存储模式大端(存储)模式:是指数据的低位保存在内存的高地址中,而数据的高位保存在内存的低地址中(相反)小端(存储)模式:是指数据的低低保存在内存的高地址中,而数据的高位保存在内存的高地址中(相同)指针类型的意义1.指针类型决定了指针解引用操作...原创 2021-08-18 22:30:25 · 83 阅读 · 0 评论 -
指针、结构体
求一个数的二进制位中有几个1int count_bit_one(int n){ int count = 0; while(n) { n = n & (n-1); count++; } return count;}乘法口诀中的小细节 %3d是C语言中格式化输出字符,代表的意思是指的输出3个字符长度的整数。可以在“%”和字母之间插进数字表示最大场宽。例如:%3d表示输出3位整型数,不够3位右对齐结构体 ...原创 2021-08-04 23:56:11 · 147 阅读 · 1 评论 -
指针相关知识
NULL—用来初始化指针,给指针赋值。指针运算 指针+-整数 指针+-指针:得到的是指针和指针之间的元素个数,必须是指向高地址的指针减去低地址的指针 指针的关系运算:>,<,>=,<=,!=标准规定 允许指向数组元素的指针与指向数组最后一个元素后面那个内存的指针比较,但是一般不允许于指向第一个元素之间的那个内存位置的指针进行比较。数组和指针的关系 数组是可以通过指针来访问的二级指针...原创 2021-07-30 20:17:16 · 52 阅读 · 0 评论 -
指针的分析
小便签:~ 按位取反操作符数据以补码的形式在内存中存储,打印时是原码。指针(pointer)指针就是一个变量,用于存放地址。形式:*p在32位的机器上,地址是32个0或者1组成二进制序列,那地址就得用4个字节的空间来存储,所以一个指针变量的大小应该是4个字节;在64位的机器上,地址是64个0或者1组成二进制序列,那地址就得用8个字节的空间来存储,所以一个指针变量的大小应该是8个字节;一个字节=8个比特位指针的解引用操作指针类型决定了指针进行解引用操作的时候,能够访问空间的大小...原创 2021-07-29 22:50:41 · 321 阅读 · 0 评论 -
C语言操作符
->形式:结构体指针 -> 成员名有些表达式的操作数在求值的过程中可能需要转换为其他类型。隐形类型转换1、整形提升(适用于类型字节小于int整型) 整形提升是按照变量的数据类型的符号位来提升的。 整形提升的意义:表达式的整型运算要在CPU的相应运算器件内执行,CPU内整型运算器(ALU)的操作数的字节长度 ,一般就是int的字节长度,同时也是CPU的通用寄存器的长度。 因此,即使两个char类型的相加,在CPU执行时实际上也要先转换为C...原创 2021-07-28 22:43:17 · 66 阅读 · 0 评论 -
数组和移位操作符
数组名一般是首元素地址以下两种情况例外:①int sz =sizeof(arr)\sizeof(arr[0]);sizeof(数组名)——数组名表示整个数组,sizeof(数组名)计算的是整个数组的大小,单位是字节。②&数组名,数组名代表整个数组,&数组名,取出的是整个数组的地址。移位操作符1、右移操作符①算术右移:右边丢弃,左边补原符号位②逻辑右移:右边丢弃,左边补02、左移操作符左边丢弃,右边补0...原创 2021-07-27 23:00:29 · 187 阅读 · 0 评论 -
输入一个数统计这个数的二进制中有多少个1
#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int main(){ int num = 0; int count = 0; int i = 0; scanf("%d", &num); for (i = 0; i < 32;i++) { if (1 == ((num>>i) & 1)) { count++; } } printf("%d\n", count);.原创 2021-07-27 22:31:59 · 98 阅读 · 0 评论 -
C语言——数组
char arr[]="abcdef";sizeof计算变量、数组、类型所占空间的大小,单位是字节——操作符,例:7个元素——char 7*1=7strlen是求字符串长度的——只能针对字符串求长度——库函数——使用得引头文件[]下标引用操作符数组在内存中是连续存放的二维数组创建int arr[3][4];初始化int arr[3][4]={1,2,3,4,5}...原创 2021-07-20 21:18:35 · 62 阅读 · 0 评论 -
2021-07-17 函数
函数strcpy 则可以把str1拷贝到str2中char str1[]="sample";char str2[40];strcpy(str2,str1);memset 则可以把arr部分字符更换char arr[]="hello world";memset(arr,'*',5);printf("%s\n",arr);//把arr前5个字符更换成了*,打印出arr为***** world自定义函数自定义函数和库函数一样,都有函数名、返回值类型和函数参数//ret_.原创 2021-07-17 18:08:36 · 49 阅读 · 0 评论 -
goto语句
goto 语句的使用格式为: goto 语句标号;其中标号是一个有效的标识符,这个标识符加上一个“:”一起出现在函数内某处,执行goto语句后,程序将跳转到该标号处并执行其后的语句。loop:goto loop;...原创 2021-07-16 20:04:34 · 87 阅读 · 0 评论 -
c语言循环结构
for循环语句把初始化、判断、调整放在一起;表达形式:for(初始化部分;判断部分;调整部分)①先执行第一部分(初始化部分)的值②再计算第二部分(判断部分)的值,若为真(非0),则进入循环内部,否则,不进入,直接去执行for语句的后续语句③循环语句执行后,再进行第三部分(调整部分),然后转到第二部分重复执行小插曲:x++ 和 ++x 的区别x = 1 a = x++ 计算得:a = 1 x = 2 先给a后x+1x = 1 a = ++x 计算得:...原创 2021-07-14 23:04:41 · 57 阅读 · 1 评论 -
用户登陆简单代码实现
以for循环语句实现用户登陆,登陆密码三次后则退出程序。#define _CRT_SECURE_NO_WARNING 1#include<stdio.h>#include<string.h>int main(){ int n; char password[20] = { 0 }; for (n = 1; n <= 3; n++) { printf("请输入密码:>"); scanf("%s", password); if ( str原创 2021-07-14 19:49:44 · 1517 阅读 · 0 评论 -
分支和循环
三种基本结构:顺序结构、选择结构、循环结构if语句if语句中,else与离它最近的未匹配的if匹配switch语句switch语句也是一种分支语句,常用于多分支情况,允许嵌套使用。int day = 0;scanf("%d",&day);switch(day)//判断day是几,()中必须是整型,例如:float就不行{case 1: //入口,case后边必须是整型常量表达式,不能是浮点型printf("星期一\n");break//跳出case 2:prin.原创 2021-07-13 22:44:27 · 47 阅读 · 0 评论 -
2021-07-13 初始语言
指针int a = 10;int* p = &a;//p是指针变量,int*为p的类型,*是解引用操作符\间接访问操作符*p = 20;//这样可以间接改变a的值,使a原本=10变为20printf("%d\n,sizeof(p)");//sizeof查p占了多少字节空间,这里和p没有关系,与机器有关,32位机器则占4个字节,64位则占8个字节结构体在C语言中,可以使用 结构体(Struct) 来存放一组不同类型的数据。 结构体的定义形式为: 结构体是一种集合,它里面包含了多个变原创 2021-07-13 22:14:08 · 55 阅读 · 0 评论 -
2021-07-12 胡乱成章
①~按二进制取反②负数在内存中以二进制的补码存储③打印时是这个数的原码11111111111111111111111111111111 补码 11111111111111111111111111111110 反码=补码-1 10000000000000000000000000000001 原码=反码取反 ...原创 2021-07-12 23:23:33 · 77 阅读 · 0 评论 -
2021-07-11 初来乍到
2021年7月11日22:33初来乍到的准大四学生,用初来乍到来形容一个大四的学生说恰当又好像不恰当,恰当在于你面对社会的风云变化,强者如云的格局,我真的一点啥都不懂,不恰当在于和比大一大二的学生相比,我似多非多地明白和懂得了什么,从这两个方面而言来形容我都恰当不过,有的大一大二的学生都准备着规划好自己未来,告别高考的他们并没有放松,无论学校的好坏,考上它的学生之中,总有人在努力奔跑,社会的局势、世俗的眼光都容不得我停留,可惜现实生活中的我也只是追求考试过了,仅此而已。放眼望去,其他高校优秀的学生不及其原创 2021-07-11 23:09:02 · 137 阅读 · 4 评论