- 博客(14)
- 收藏
- 关注
原创 C语言之文件入门(超详解)
/*1)文件是相关信息的集合2)文件的取名:主文件名.扩展名C程序可以对文件进行操作读操作:从文件里面把文件的内容取出来,并输出到屏幕写操作:把一些内容往文件里面写入C程序是通过什么方式来对文件进行操作的通过文件指针并加上一些函数来对文件进行操作的什么是文件指针1)这个指针是用来存放文件的首地址2)这个指针是专门用来指向文件的定义文件指针FILE *指针名比如:FILE *fp定义了一个指针为fp,这个指针以后只能够指向文件以后要把文件的首地址赋给该指针如何给文件指针赋值通
2020-07-22 17:45:30
324
原创 位运算~:按位求反 << : 左移 >> : 右移 & : 位与 ^ : 异或 | : 位或
位运算~:按位求反<< : 左移>> : 右移& : 位与^ : 异或| : 位或~按位求反原理 : 0变1, 1变0;eg 10001101 ~01110010左移 <<原理:把数字向左移动, 右边补零 eg : 1 0 0 0 1 << 2 1 0// 0 0 1 0 0右移 >>原理 : 把数字向右移动, 左边补零 eg : 1 0 0 0 1 >> 2 0 0 1
2020-07-21 20:01:16
625
原创 C语言之共用体了解
/*什么是共用体所有成员都使用同一片地址单元如何定义共用体union 共用体类型名{成员列表};说明:1)共用体的定义与使用方法与结构体相同2)结构体中各个成员都有属于自己的存储单元,而共用体中各个成员都共享一个存储单元3)数据类型与存储单元大小的对应关系:int--------4个存储单元float------4个存储单元double-----8个存储单元long-------4个存储单元char-------一个存储单元4)结构体的大小应该等于结构体所有成员所占存储单
2020-07-21 19:57:31
191
原创 C语言之链表入门(超详解)
/*链表三要素1)头指针(head):是用来说明链表开始了,头指针就代表链表本身所以以后要访问链表,就要访问头指针2)结点(node):链表中每一个结构体变量3)尾指针:用来说明链表的结束(它是一个空指针,NULL)*/#include<stdio.h>#include<string.h>typedef struct stud //定义了一个结构体{ char Id[10];//工号 char Name[10];//姓名 int pay;//工资 int
2020-07-20 17:16:51
9916
6
原创 结构体入门(超详解)
/什么是结构体1)不同类型的变量集合2)结构体的目的是为了描述一个对象,一个对象有很多属性为了表示这些属性就要用到不同的变量,而且变量不止一个3)定义结构体struct 结构体名{属性列表};比如;定义一个结构体,目的是为了描述一个工人struct worker{char id[];char name[];char sex[];int pay;};这所定义的只是类型定义结构体变量的方式1:在定义结构体类型的时候,就定义结构体变量,相当于全局变量2:在定义结构体类型之后,
2020-07-17 22:41:05
352
原创 常用的字符串函数strcpy(a,b) / strlen(a) / strcat(a,b)/ strcmp(a, b)/ strupr(a) /strlwr(a)
/1)字符串复制函数 strcpy()//strcpy 是 string copy 的缩写strcpy(a,b)相当于a=b,将字符串b赋给a需要头文件string.h的支持//*#include <stdio.h>#include <string.h>int main() { char a[50] ="abc"; char b[50] = "cde"; strcpy(a, b); printf("a: %s\n", a); return 0;//cde}
2020-07-16 17:21:31
30555
1
原创 宏的使用(无参宏)(有参宏)
/*什么是宏1)用一个字符串表示有意义的常量或常量表达式2)先替换,再代值3)宏可以嵌套定义4)定义宏A:无参宏:#define 宏名 常量or常量表达式#define PI 3.14B:有参宏:#define 宏名(参数) 表达式#define FUN(x,y) x,y*/#include<stdio.h>#define M 2#define N M+Mvoid main(){ int k1, k2; k1 = M * N;//2*
2020-07-16 14:38:20
329
原创 指针总结
/*1:int a *p = &a; 指向普通变量的指针2:int a[3], *p = a; 指向一维数组的元素的指针3:int a[3][4], (*p)[4] = a; 指向一维数组的指针4:int (*p)[5]; 二维数组指针5:(*p)(int, int)指向函数的指针(函数指针)6: int *sum(int a, int b) 一个返回指针的函数(指针函数)7 : int **p;(二级指针)指向int *类型的数据8)指向指针的指针存储的不是变量的地址,而是指针
2020-07-15 21:30:41
141
原创 多级指针与指针概念理解(新手必看加敲)
/*#include<stdio.h>int main(void){ int i = 5; int *p,*q; p = &i; //*q = *p;//q未初始化 q = p; printf("%d\n", *q); return 0;}*//*#include<stdio.h>void f(int *pArr, int len);int main(void){ int a[5] = { 1,2,3,4,5 }; f(a, 5); retu
2020-07-15 19:03:37
455
原创 指向字符串的指针(超详解)
1)什么是字符串用双引号括起来的零个或多个字符"abcd"2)字符串的结束符号:\0,它是一个字符,而不是一个字符串3)字符串的输出;printf("%s",数组名)puts()输入:scanfgets4)strlen:用来测量一个字符串中所包含的字符个数5)如果一个指针p指向了一个字符串,那我们就说p就是一个指向字符串指针定义格式:char *指针名 ,如char *p赋值:char *p = “abcd” or char *p; p = “abcd”;可以把一个字符串直接赋
2020-07-15 18:55:37
13499
3
原创 指针与函数,二维数组函数,指针数组(超详解)
以二维数组为函数参数A: 形参用数组,实参也用数组; 函数定义:fun(int a[][4]) 调用函数:fun(a)B : 形参用指针,实参用数组; 函数定义 : fun(int(*a)[4]) 调用函数:fun(a)C : 形参用指针,实参用指针; 函数定义 : fun(int(*a)[4]) 调用函数:fun(指针a) /*#include<stdio.h>int sum(int a[][4]){ int s = 0, i, j; for (i =
2020-07-15 18:38:31
2078
1
原创 指针与二维数组
1)二维数组是一个特殊的一维数组2)int a[3][4]这个二维数组里面包含有三个一维数组,每一个一维数组里面又含有四个元素3)定义一个一维数组a,它里面含有三个元素分别是a[0], a[1], a[2], 而每个元素又是一个含有四个元素的一维数组4)对于一维数组而言,a[i]就代表一个值,但对于二维数组而言,a[i]本身还是一个数组,a[i]是数组名,所以a[i]依然是一个指针5)a+i是指向a[i]的而a[i]本身也是一个数组,所以a+i是指向一维数组的指针即行指针,且其移动单位是以数组为单位
2020-07-13 23:44:31
1915
原创 指针学习2,交换,多级指针
#include<stdio.h>void huhuan_1(int, int);void huhuan_2(int*, int*);void huhuan_3(int*, int*);int main(){ int a = 3,b=5; huhuan_3(&a, &b); printf("a=%d,b=%d", a, b); return 0;}void huhuan_1(int p , int q)//不能完成交换功能{ int
2020-06-30 17:53:26
139
原创 C语言指针详解1
指针详解#include <stdio.h>int main(void){ int * p; int i = 5; p = &i; printf("*p=%d\ni=%d\n", *p, i); return 0;}1.p是变量的名字,int * 表示的p变量存放的是int类型变量的地址int p不是定义了一个名字为p的变量;p是变量名,p变量的数据类型是int 类型即存放int变量地址的类型。2.p保存了i的地址,所以p指向i;但p不是i,i也不是p即修改p的
2020-06-29 11:09:56
132
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人