网站一次性链接怎么做的,外贸网站平台下载,龙华做网站哪家便宜,高端建站用什么软件目录
指针
1.const指针 2.void
3.函数指针和指针函数: 1.指针函数: 2.函数指针: 4.C语言中二级指针使用场景: 1.指针数组传参时: 2.函数体内想修改函数体外指针变量值的时
构造数据类型:
数据类型:
1.基本数据类型: 1#xff0c; int 2#xff0c;…目录
指针
1.const指针 2.void
3.函数指针和指针函数: 1.指针函数: 2.函数指针: 4.C语言中二级指针使用场景: 1.指针数组传参时: 2.函数体内想修改函数体外指针变量值的时
构造数据类型:
数据类型:
1.基本数据类型: 1 int 2double 3char 4等等 2.构造数据类型: 1.struct 结构体 2.union 共用体 3.enum 枚举
1.结构体:
1.结构体类型的定义 2.结构体变量的定义 3.结构体变量的初始化: 1.全部初始化: 2.局部初始化: 4.结构体成员变量的访问:
作业: 指针
1.const指针
定义形式 const 关键字 常量(只读) readonly 1.const int *p; 2.int const *p; 3.int *const p; 4.const int *const p; 5.int const *const p; 1和2是等价的 const修饰 *p,指针变量p的值可以改变,但不能利用指针修改指向空间中的值 3 const修饰 p,指针变量p的值不能改变,但可以利用指针变量p修改指向空间中的值 一定要对指针初始化 4和5是等价的 const修饰p和*p,指针变量p的值不能改变,也不能利用*p改变直系那个空间中的值 一定要初始化
参考如下
#includestdio.hint main(void)
{const int *p NULL;int const *q NULL;int a 300;int *const m a;const char *const n how;char const *const v are;p a;q a;printf(*P %d *q %d\n,*p,*q);printf(*m %d\n,*m);*m 200;printf(*P %d *q %d\n,*p,*q);printf(*m %d\n,*m);return 0;
}2.void void a; 高精度 int *p; double *p; char *p; 低精度 void *p; p保存内存地址 int *、double *、char * 转换为 void * 需要强制类型转换 void *转换为int *、double *、char *不需要强制类型转换 strcpy - 拷贝字符串 memcpy - 拷贝一段内存空间
参考如下
#includestdio.hchar *fun(void)
{char *str {hello world};
// char str[32] {hello world};return str;
}int main(void)
{char *p NULL;p fun();printf(p %s\n,p);return 0;
}3.函数指针和指针函数: 指针函数:是函数,函数的返回值类型是指针类型 函数指针:是指针,指针指向了函数 1.指针函数: 局部变量的地址不能返回,因为局部变量会随函数作用域结束被回收,虽然能够获得返回的地址,但地址对应的空间已经被回收过了 将函数的返回值作为下一个函数的参数
参考如下
#includestdio.h
#includestring.hchar *fun(char *p,const char *q)
{char *o p;while(*q ! \0){*p *q;p;q;}*p \0;return o;
}int main(void)
{char str1[32] {0};char str2[32] {0};fun(str2,fun(str1,hello world));printf(str1 %s str2 %s\n,str1,str2);strcpy(str2,strcpy(str1,how are you));printf(str1 %s str2 %s\n,str1,str2);return 0;
}2.函数指针: 定义形式 int (*Fun)(int a, int b) NULL; 定义函数指针变量Fun,占8个字节空间,指向int返回值有2个int参数的函数 参考如下
#includestdio.h
#includestdlib.h#define N jjiangint Inputa(int *pa,int len)
{int i 0;for(i 0;i len;i){scanf(%d,pa[i]);}return 0;
}int Outputa(int *pa,int len)
{int i 0;for(i 0;i len;i){printf(%d ,pa[i]);}printf(\n);return 0;
}int Sorta(int *pa,int len,int (*pcmp)(int ,int ))
{int i 0;int j 0;int tmp 0;for(j 0;j len -1;j){for(i 0;i len - 1 - j;i){if(pcmp(pa[i],pa[i1])){tmp pa[i];pa[i] pa[i1];pa[i1] tmp;}}}return 0;
}int sheng(int num1,int num2)
{if(num1 num2){return 1;}return 0;
}int jiang(int num1,int num2)
{if(num2 num1){return 1;}return 0;
}int jsheng(int num1,int num2)
{if(abs(num1) abs(num2)){return 1;}return 0;
}int jjiang(int num1,int num2)
{if(abs(num2) abs(num1)){return 1;}return 0;
}int main(void)
{int a[5] {0};Inputa(a,5);Sorta(a,5,N);Outputa(a,5);return 0;
}4.C语言中二级指针使用场景: 1.指针数组传参时: 定义形式 char *str[5]; int Fun(char **ppstr, int len); 2.函数体内想修改函数体外指针变量值的时 要传递指针变量的地址即二级指针 char *p NULL; int Fun(char **pp);
参考如下
#includestdio.hvoid fun(char **p)
{*p hello world!;return;
}int main(void)
{char *p NULL;fun(p);printf(p %s\n,p);}构造数据类型:
数据类型:
1.基本数据类型: 1 int 2double 3char 4等等 2.构造数据类型: 1.struct 结构体 2.union 共用体 3.enum 枚举 1.结构体:
1.结构体类型的定义 struct 结构体名 { 数据类型1 成员变量1; 数据类型2 成员变量2; 数据类型3 成员变量3; .. }; 2.结构体变量的定义 数据类型 变量名; 数据类型 *指针变量名; 3.结构体变量的初始化: 1.全部初始化: struct student s {zhangsan, m, 19, 100}; 2.局部初始化: struct student stu { .name lisi, .score 90, };
参考如下
#includestdio.hstruct time
{int hour;int min;int sec;
};struct date
{int year;int mon;int day;
};struct datetime
{struct time t;struct date d;
};struct yusuan
{int jia;int jian;int cheng;int chu;
}ys;int main(void)
{struct yusuan ys {1,2,3,4}; struct datetime dt {{15,54,30},{2024,1,29}};struct date da {.year 2024,.mon 1,};struct datetime *p NULL;struct time ti {16,33,10};p dt;printf(%d:%d:%d\n,ti.hour,ti.min,ti.sec);printf(%d-%d-%d-%d:%d:%d\n,dt.d.year,dt.d.mon,dt.d.day,dt.t.hour,dt.t.min,dt.t.sec);printf(%d----%d\n,p-d.year,p-t.hour);return 0;
} 4.结构体成员变量的访问: . :结构体变量类型访问成员变量使用 . - :结构体指针类型访问成员变量使用 - 整体类型由成员变量类型决定 参考如下
#includestdio.h
#includestring.hstruct stduent
{char name[32];char sex;int age;int score;
};int main(void)
{struct stduent s;memset(s,0,sizeof(s));gets(s.name);s.sex getchar();scanf(%d%d,s.age,s.score);printf(姓名:%s\n性别:%c\n年龄:%d\n成绩:%d\n,s.name,s.sex,s.age,s.score);return 0;
}作业: 1.定义一个结构体包含年-月-日三个成员 struct date { int year; int mon; int day; }; 从终端接收年月日信息存放到结构体中,计算该天为该年的第几天计算该年剩余多少天打印年月日信息 2.封装一个函数,给定一个数字字符串转换成其对应的整形数 123456 123456 int MyAtoi(char *pstr);
1
#includestdio.h
#includestring.hstruct date
{int year;int mon;int day;
};int main(void)
{int panduan 0;int sum 0;int last 0;int i 0;int a[] {0,31,28,31,30,31,30,31,31,30,31,30,31};struct date d;memset(d,0,sizeof(d));scanf(%d%d%d,d.year,d.mon,d.day);if(d.year % 4 0 d.year % 100 ! 0 || d.year % 400 0){panduan 1;}if(panduan 1){a[2] 29;}for(i 0;i d.mon;i){sum a[i];}sum d.day;last 356 - sum;if(panduan 1){last 366 - sum;}printf(%d-%d-%d为该年第%d天该年还剩%d天\n,d.year,d.mon,d.day,sum,last);return 0;
}2
#includestdio.h
#includestring.hint MyAtoi(char *pa)
{int sum 0;int len strlen(pa);while(*pa ! \0){sum sum * 10 (*pa - 48);pa;}return sum;
}int main(void)
{char a[64] {0};int b 0;gets(a);b MyAtoi(a);printf(%d\n,b);return 0;
}