自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 进程的虚拟地址空间

以x86,32位的Linux环境下为例既然是32位的环境下,进程的虚拟地址空间的地址从0x0000 0000到0xffff ffff也就是4G的大小,其中用户空间占3G,内核空间占1G。用户空间在用户空间中,地址从0x0000 0000到0x0804 8000不占用,不允许读,也不允许写。之后就是.text即代码段,存放程序代码,在函数内部声明的变量,经过编译形成汇编指令代码存在此处。而.rodata存放什么呢?例如charp=“hello word”,定义了一个指针变量指向的是字符串,p所指的

2021-05-04 16:42:40 828

原创 一级指针与二级指针的指向与地址问题

有如下代码#include<stdio.h>int main(){ int a = 10; int b = 20; int* p = NULL; int** s = NULL; s = &p; *s = &a; **s = 100; *s = &b; **s = 200; return 0;}经过第四到第七行初始化后,各变量的分布情况如下大致描述就是下面这张图:a的地址(&a)为0x00b6fc4c,a的值为10,同理b、p、s

2021-04-13 10:52:33 542

原创 二维数组与指针之间的问题

有这么一个题`#include<stdio.h>int main(){ int arr[5][2] = { 1,2,3,4,5,6,7,8,9,10 }; int(*s)[2] = &arr[1]; int* p = arr[1]; printf("%d\n", s[1][3]); printf("%d\n", p[3]); return 0;}获取各变量的值和地址如下int(*s)[2]=&arr[1]意思是我先声明一个元素大小为2的整型指针数组

2021-04-09 23:39:41 256

原创 给一个不多于5位的正整数,要求:

给一个不多于5位的正整数,要求1、求出它是几位数2、分别输出每一位数3、按逆序输出各位数字,例如原数321,应输出123代码如下:开头的宏定义是忽略scanf带来的编译不通过的问题,不加开头的宏定义也可以,将scanf换成scanf_s即可#define _CRT_SECURE_NO_WARNINGS 0#include<stdio.h>#include<math.h>int number_bit(int a)//得到它是几位数的函数{ int i = 0;

2021-04-09 23:10:22 3285

原创 c语言static关键字

static关键字定义静态变量静态变量在定义之后,只声明一次,并且放至数据区,程序开辟空间,例如全局变量在数据区,存在于整个程序的生命周期。局部变量存在于栈区,在{ }内有效。开辟空间例如malloc或者new存在于堆区。代码程序一般存在于代码段。在c语言中,{ }中的程序一般为生命周期,而定义某个变量时加上static,虽然处于局部变量生存周期内,但本身还是存放于数据段即在整个程序结束之前均可调用,此外static只声明一次。...

2021-04-04 11:52:38 323

原创 求两个数的最大公约数

欧几里得求两个数的最大公约数,可以用到欧几里得公式:gcd(a,b)=gcd(b,a mod b),直接给个例子:15和10的最大公约数为5。作法:先给个中间数c,c=15%10为5,然后将10赋值给a,c的值赋值给b,此时a=10,b=5。之后c=10%5为0,继续将b的值赋值给a,c的值赋值给b,此时a=5,b=0。结束的条件是b=0.代码如下:结果如下:代码:#include<stdio.h>int gcd(int x, int y){while (y != 0){i

2021-04-03 23:17:26 254

原创 Linux下的代码从预编译到链接的过程

Linux下的代码从预编译到链接的过程1、先创建一个文件并加入代码:vim main.c2、预编译:gcc -E main.c -o main.i3、编译:gcc -S main.i -o main.s4、汇编:gcc -c main.s -o main.o5、链接:gcc -o main main.o经过上面几个步骤后即可生成main文件使用:./main即可执行...

2021-04-03 20:19:44 95

原创 C例题:计算1!+2!+3!+...+10!

简单阶乘的算法

2019-10-14 12:16:06 6676

原创 计算n的阶乘

计算n 的阶乘

2019-10-14 11:42:05 2711 2

原创 输入两个正整数m和n,求其最大公约数和最小公倍数

最大公约数(最大公因数)和最小公倍数的话,举个例子,比如40和12,40可以分为很多个数相乘得到,比如2乘20,4乘10,5乘8等等,12同理也可以分为2乘6,3乘4等等,所以最大公约数就位4,再比如6和18的最大公约数为6而不是3,1等,再比如4和8的最大公约数为4而不是2,1等,在此呢我发现一个规律,就是求两个数的最大公约数,可以用大一点的数除以小一点的数,得到的余数就是最大公约数,比如40除...

2019-10-13 16:24:17 2628

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除