- 博客(20)
- 收藏
- 关注
原创 递归—斐波拉奇数列
#include <stdio.h>//斐波拉奇数列 F(0)=0;F(1)=1;F(n)=F(n-1)+F(n-2),n>=2;int test1(int n){ if ( n == 0 ) { return 0; } if (n == 1 || n == 2 ) { return 1; } else if (n > 2) { return test1(n - 1...
2022-03-01 09:58:44
144
原创 参数不确定的函数
#include <stdio.h>#include <stdlib.h>#include <stdarg.h>void test(int a, ...)//参数不确定的函数{ va_list sp;//定义参数数组 va_start(sp, a);//讲参数 装进数组 printf("%d\n", va_arg(sp, int)); printf("%0.2lf\n", va_arg(sp, double)); print...
2022-02-28 22:42:30
141
原创 函数基础知识
函数分为自定义函数和和系统函数;系统函数就是C语言定义好的,可以直接引用。注意自定义命名时不能与系统函数名字重复。函数适用于完成特定任务的程序代码单元,就一个功能封装成一段独立的代码段,在主函数中直接加以引用。模块化编程,增加代码的复用性,主函数的可读性也得到提升。函数的形式也分成四种无参数,无返回值有参数,无返回值无参数,有返回值有参数,有返回值函数头名字命名:返回值类型 函数名字\功能 (参数){}注意点:C语言,函数没有参数需要加上void,如果不加vo
2022-02-16 09:25:48
138
原创 malloc,calloc和realloc。
malloc,calloc相同点:1.堆区申请内存空间,手动申请手动释放。2.申请的空间均为连续的,返回值为这段空间的首地址。3.理论上可申请的空间为 32位系统:4GB;64位系统16TB。实际上也受计算机安装的内存有关。4.(类型)malloc/calloc (n); n应该为正整数,实际上n是一个无符号整型;32位编译器:unsigned int (size_t)64位编译器:long unsigned int(size_t)实际上输入的数字n是一个有...
2022-02-11 18:41:35
654
原创 栈区20220126
#include <stdio.h>int main(){ int a[258000]; return 0;} //理论上栈区默认可编写的内存空间(1024 * 1024 ); //实际上我们可以操作的空间不足(1024 * 1024 ),因为程序里面包含返回值等参数占用字节数;//(1024 * 1024 / 4) == 262,144;可以通过编译器设置更改栈区大小;VS19中,右击项目,属性...
2022-01-26 16:24:19
132
原创 系统与指针变量的相关性20220126
#include <stdio.h>int main(void){ int* p1; int(*p2)[2]; int(*p3)[2][2]; short* p4; float* p5; double* p6; printf("int类型指针p1字节数:%d\n", sizeof p1); printf("int类型数组指针p2字节数:%d\n", sizeof p2); printf("int类型二维数组指针p3字节数...
2022-01-26 15:51:42
450
原创 下标运算深入20220121
#include <stdio.h>int main(void){ int a[5] = { 1,3,5,7,9 }; int* p = &a[0]; printf("%d,%d,%d\n", *(p + 2), p[2],2[p]); //个人理解,在下标运算里面,+n产生的偏移量应该理解为,n个单位的偏移,即为n个p的偏移,即*(p+2p)。 return 0;}...
2022-01-21 19:11:12
237
原创 指针与下标运算20220121
#include <stdio.h>int main(void){ int a[5] = { 1,3,5,7,9 }; int* p = &a[0]; int i = 0; for (i = 0; i < 5; i++) { printf("%d,%p,%p,%p\n", a[i], &p[i],&a[i],p++); } return 0;}1,0133F928,...
2022-01-21 15:15:12
260
原创 指针遍历一堆数组20220121
#include <stdio.h>int main(void){ int a[5] = { 1,2,3,4,5 }; int* p = &a[0]; int i; for (i = 0; i < 5; i++) { printf("%d ", *p++); } int d; for (d = 0; d < 5; d++) { printf("%d ", *(p ...
2022-01-21 13:17:54
471
原创 指针偏移对数组内容进行赋值20220121
#include <stdio.h>int main(void){ int a[5] = { 1, 3, 5, 7, 9 }; int* p = &a[0]; printf("%p,%d\n", p+2, *(p+2)); *( p+2 ) = 12; printf("%p,%d\n", p+2, *(p+2)); return 0;}1 3 57...
2022-01-21 13:16:10
571
原创 二级指针20220120
#include <stdio.h>int main(void){ int a = 10; int* p = &a; printf("%d,%p,%d,%p\n", a, p, *p, &p); //*p=a p=&a int** p1 = &p; printf("%p,%p,%p\n",p1,&p1,*p1); //p1=&p *p1=p=&a re...
2022-01-20 14:30:38
175
原创 类型决定指针操作20220120
#include <stdio.h>int main(void){ int a = 10; int* p = &a; printf("%p,%d\n", p, *p); double b = 123.45; double* q = &b; printf("%p,%lf\n", q, *q); //int c = 10; //double* i = &c; //printf("%p,%d...
2022-01-20 13:16:56
211
原创 指针操作指向空间20220119
#include <stdio.h>int main(void){ int a = 10; int *p = &a; //读取 *p=a; printf("%p, %d, %d\n", p, *p, a); //写 *p = 20; printf("%p, %d, %d\n", p, *p, a); //取地址 printf("%p, %p, %p\n", p, &*p, &a); ret...
2022-01-19 17:28:10
211
原创 20220119指针赋值
#include <stdio.h>int main(void){ int a = 10; int* p = &a; printf("%p,%p,%p\n", p, &p, &a); int b = 12; p = &b; printf("%p,%p,%p\n", p, &p, &b); return 0;}int a=10;表示int类型的变量a,赋值10;int*p=&...
2022-01-19 16:46:03
172
原创 20220119多维数组学习
#include <stdio.h>int main(void){ int a[2][3][3] = { {{1,2,3},{4,5,6},{7,8,9}},{{11,12,13},{14,15,16},{17,18,19}} }; // (000 001 002) (010 011 012) (020 021 022) (100 101 102)(110 111 112) (120 121 122) int i; int j; ...
2022-01-19 15:17:43
183
原创 20220118数组之间的赋值
#include <stdio.h>#include <string.h>int main(void){ int a[5] = { 1, 2, 3, 4, 5 }; int b[5]; int i; for (i = 0; i < 5; i++) { b[i] = a[i]; printf("%p\n", &b[i]); printf("%p\n", &a[i]);...
2022-01-18 13:27:14
94
原创 20220118二维数组地址
#include <stdio.h>int main(void){ int a[3][2] = { {1,2},{3,4},{5,6} }; printf("%d,%d,%d,%d,%d,%d\n", &a[0][0], &a[0][1], &a[1][0], &a[1][1], &a[2][0], &a[2][1]); //数组内全部地址进行读取 printf("%d,%d,%d\n", &a[0], ...
2022-01-18 12:54:49
93
原创 20220117二维数组及赋值的学习
#include <stdio.h>int main(void){ int a[3][2]; //a表示数组的名字,3表示这个a二维数组里面有3个数组,2表示3个数组内每个内涵2个元素,每个数组内的元素都是同一种类型。 printf("%d",sizeof(a)); int a1[3][2] = { {1,2},{3,4},{5,6} }; //给数组a的3组元素进行赋值; int a2[3][2] = { {1,2},{3,4} };...
2022-01-17 20:21:23
1135
原创 20220117 数组学习
#include <stdio.h>int main(void){ int a[5] = { 10, 12, 1, 9, 5 }; printf("%d, %d, %d, %d, %d\n", a[0], a[1], a[2], a[3], a[4]); int i; for (i = 0; i <= 4; i++) { printf("%d\n", a[i]); } return 0;}提取数组...
2022-01-17 16:48:23
150
原创 20220116数组 学习
数组目前主流编译器不支持变量作为数组内的个数定义;建议使用大于0的整数进行对数组个数数量的定义;数组内储存内容类型相同;数组申请的空间是连续的;单个元素为4字节,单个数组不大于120w,即为储存内容个数不大于30w。#include <stdio.h>int main (void){int a[10];return 0;}#include <stdio.h>int main(void){ in...
2022-01-16 20:52:24
85
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人