
笔记
笔记
小王 -挺忙
爱摄影,爱编程,爱做项目,更爱美人。
展开
-
typedef关键字
typedef关键字typedeftypedef为C语言的关键字,跟if ,while。。等等一样这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。和 struct 来匹配为了代码编写简洁和普通的类型匹配,通过名字来获取一些信息。给基本数据类型起别名;typedef unsigned char u_int8;typedef unsigned short int u_int16;typedef unsigned int u_int32;int ma原创 2020-11-09 19:29:47 · 176 阅读 · 0 评论 -
结构体大小的计算方式
结构体大小的计算方式1.结构体成员的偏移量必须是成员大小的整倍数(0被认为是任何数的整数倍)。struct s1{ char ch1; char ch2; char ch3; int i; // int i 遵循结构体运算法则第一条,偏移量是必须是当前成员的大小的整数倍 // 逻辑偏移2 实际按照对其的规划,要偏移4 int main(){ printf("s1;%d\n",sizeof(struct s1));原创 2020-11-07 20:21:10 · 404 阅读 · 0 评论 -
结构体指针函数综合处理学生成绩
结构体指针函数综合处理学生成绩#include <stdio.h>#include <stdlib.h>// 结构体,函数以及指针的小综合。struct Student{ int score; char *name; // char name[128];};struct Student *initstuScores(int a) { int i; //struct Student stus[3];原创 2020-11-06 20:50:19 · 214 阅读 · 0 评论 -
结构体指针操作学生成绩
结构体指针操作学生成绩#include <stdio.h>#include <stdlib.h>struct Student{ int score; char *name; // char name[128]; };int main(){ int i; int a ; printf("请输入总人数;\n"); scanf("%d",&a); //struct Student stu原创 2020-11-06 19:47:59 · 291 阅读 · 0 评论 -
结构体指针
结构体指针struct Student{ int score; char name[128];};int main(){ struct Student stu1; stu1.score = 100; strcpy(stu1.name,"lao K"); printf("test\n"); printf("名字;%s,分数;%d\n",stu1.name,stu1.score); struct Student *p;原创 2020-11-05 21:19:51 · 2410 阅读 · 0 评论 -
结构体是纸老虎,旧知识新用法,easy
结构体是纸老虎,旧知识新用法先看一段程序;void func(int data){ printf("函数;data = %d\n",data);}int main(){ int a = 10; printf("a = %d\n",a); char c = 'M'; printf("c = %c\n",c); float f = 1.2; printf("f = %f\n",f); double d = 3.4原创 2020-11-04 21:23:55 · 760 阅读 · 0 评论 -
结构体的定义和使用
结构体的定义和使用1.结构体的定义和使用struct Student{ int score; //特性;分数 char name[128]; int xuehao; //特性;名字 //void(*pintroduce)(char *pname);// 行为;函数指针(自我介绍)};int main(){ // 类型 变量名 初始值 int a =原创 2020-11-04 20:01:48 · 389 阅读 · 0 评论 -
为什么要用结构体
为什么要用结构体为什么要用结构体?举个例子;学生成绩管理系统我们需要把学生的姓名,性别,学号,成绩等等都得打印出来,那么只有一种类型的变量就满足不了了。所有我们就得需要结构体。结构体跟数组的区别数组;类型相同的一组集合。结构体;类不同的一种集合。(数据更多,丰富且大)...原创 2020-11-01 20:13:26 · 1253 阅读 · 0 评论 -
自己实现字符串操作api
自己实现字符串操作api一#include <stdio.h>#include <stdlib.h>void myputs(char *p) // 除了变量声明 定义以外·,都是运算符{ // 字符串的明显特点;结尾有'\0' while(*p !='\0'){ //putchar(*p++); printf("%c",*p++); } putchar('\n');}int mygets(char *p){ int cn原创 2020-10-31 20:00:26 · 106 阅读 · 0 评论 -
字符串操作常用函数三
字符串操作常用函数三知识点;1.strchr;函数原型;char *strchr(const char *str,char c)str – 要被检索的 c 字符串c – 在 str 中要搜索的字符功能;在参数str所指向的字符串中搜索第一次出现字符c(一个无符号字符)的位置返回值;返回一个指向该字符串中第一次出现的字符的指针,如果字符串中不包含该字符则返回NULL空指针。头文件;#include <string.h>char *str = "chenlichen";原创 2020-10-29 21:36:25 · 198 阅读 · 0 评论 -
字符串操作常用函数二
字符串操作常用函数二知识点1. 拷贝复制 strcpy stmcpy格式;char strcpy(char dest,const char *src);char strdest[128] = {'\0'}; char *strsrc = "老K,嵌入式"; strcpy(strdest,strsrc); printf("复制字符串完毕,%s\n",strdest);运行结果;老知识新用;用memset函数,memset(strdest,'\0原创 2020-10-27 21:33:05 · 343 阅读 · 0 评论 -
字符串操作常用函数一
字符串操作常用函数一知识点puts 和 printf// puts API 函数 char *str = "老K 嵌入式"; puts(str); //puts会自动加一个 \n 换行 printf("%s\n",str); // puts 和 printf 作用基本一样运行结果puts 和 printf 作用基本一样注意;puts会自动加一个 \n 换行gets 和 scanf// gets API 函数 // 1.指针 (灵活多变) char *p原创 2020-10-27 19:58:33 · 153 阅读 · 1 评论 -
sizeof和strlen在字符串计算中的区别
sizeof和strlen在字符串计算中的区别int main(){ int a[] = {1,2,3}; printf("数组a的元素个数;%d\n",sizeof(a)/sizeof(a[0])); char a2[] = "hello"; printf("数组a的元素个数;%d\n",sizeof(a2)/sizeof(a2[0])); printf("我们希望得到hello的真实字符个数,用strlen,%d\n",strlen(a2));原创 2020-10-26 20:36:03 · 212 阅读 · 1 评论 -
字符串在内存中的存储方式
字符串在内存中的存储方式连续的空间,整个数组的大小是元素个数*元素类型大小整形数组;int a[3]={1,2,3}; // 连续的空间,整个数组的大小是元素个数*元素类型大小 printf("a数组的大小是;%d\n",sizeof(a)); printf("a数组的大小是;%d\n",sizeof(a[0])); printf("a数组的大小是;%d\n",sizeof(int)); printf("数组的个数可以这么算,结果是;%d\n",sizeof(a)/s原创 2020-10-26 20:08:12 · 4086 阅读 · 0 评论 -
字符的定义方式及输出
字符的定义方式及输出字符串的一些知识点定义字符串的第一种方式,和整数数组类似,傻逼法 char str[5] = {'a','b','c','d','f'};// 类比于整数数组 for(i=0;i<sizeof(str)/sizeof(str[0]);i++){ printf("%c ",str[i]); } 类比于整数数组定义字符串的第二种方式,和整数数组类似,没那么傻逼char str2[原创 2020-10-26 19:21:06 · 3010 阅读 · 1 评论 -
函数指针
函数指针也是一个指针,存放的是函数的地址。两个问题;1.如何定义?// 如何定义一个函数指针? void (*p2)(); // 1.如何表示指针;用*表示,2.如何知道是函数指针;有括号() 3.函数指针是专用的,格式要求很强(参数类型,个数,返回值都要一致),就像数组指针一样 ;1.如何表示指针;用*表示,2.如何知道是函数指针;有括号() 3.函数指针是专用的,格式要求很强(参数类型,个数,返回值都要一致),就像数组指针一样 。2.如何通过指针来调用函数?p2 = p原创 2020-10-24 20:49:36 · 122 阅读 · 0 评论 -
数组指针
数组指针数组指针的写法;int a[3] = {1,2,3};int (*p)[3]; // 真正意义上的数组的指针,强调的是类型,数组的个数,偏移值是偏移了整个数组的大小 p = a;指针数组的写法; int a[3] = {1,2,3}; int *p2; p2 = a;看看数组指针和指针数组的输出地址的运行结果;int a[3] = {1,2,3}; int b; int (*p)[3]; // 真正意义上的数组的指针,强调的是类型,数组的个数,原创 2020-10-24 19:48:12 · 2067 阅读 · 0 评论 -
指针数组
指针数组#include <stdio.h>#include <stdlib.h>int main(){ int a = 2; int b = 3; int c = 4; // 三个毫无关系的整型变量 int array[3]; //多个整数,叫做整数数组 int *p; // 这么定义指针数组 int *parray[3]; //多个指针,叫做指针数组,数组中的每一项都是一个指针变量原创 2020-10-23 19:28:32 · 381 阅读 · 0 评论 -
为什么用指针 二
为什么要用指针 二程序 一;int main(){ int a = 10; int b = 5; // 交换 tmp = a; a = b; b = tmp; swap(&a,&b); printf("a=%d\n",a); printf("b=%d\n",b); // 运行发生了交换 system("pause"); return 0;}运行结果;是的,a 和 b 的值倒过来原创 2020-10-22 20:26:11 · 168 阅读 · 0 评论 -
为什么要用指针 一
为什么要用指针 一#include <stdio.h>#include <stdlib.h>// 为什么要用指针?//1.能不能让a(10),强制保存在我要的地址 int main(){ int a; a = 10; printf("a 的地址 %p;\n",&a); // a的地址是系统随机分配的 int *p = &a; printf("a 的地址 %d;\n",*p);原创 2020-10-21 20:17:09 · 159 阅读 · 2 评论 -
指针数组函数的综合
指针数组函数的综合程序先亮一下#include <stdio.h>#include <stdlib.h>void initScores(int *datas,int size){ int i; for(i= 0;i<size;i++){//0 1 2 3 4 5 6 7 8 9 // 提示用户输入第多少个分数 printf("请输入第%d个学生的分数;\n",i+1); // 获取用户的输入 scanf原创 2020-10-21 19:16:06 · 156 阅读 · 0 评论 -
指针分类型&指针与数组
指针分类型&指针与数组指针练习程序#include <stdio.h>#include <stdlib.h>int main(){ int *p;// 只能存放整数的地址 char *p2; // 存放字符数据的地址 int a = 10; char c = 'A'; p = &a;// p = &c 判断计算机的大小端 p2 = &c; printf("a原创 2020-10-20 21:19:26 · 202 阅读 · 0 评论 -
指针知识点以及练习程序
日期;2020,10,20指针知识点以及练习程序#include <stdio.h>#include <stdlib.h>int juhuatai = 10; // 通过变量名直接访问变量/*变量名访问方式有两种;1. 变量名2.地址去花店两种方式1.店名一路问过去2.地址,直接导航过去*///指针=地址int main(){ int juhautai = 10; int meiguitai = 9;原创 2020-10-19 21:06:10 · 117 阅读 · 0 评论