![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
aminxiaopengyou
猪猪
展开
-
你的vs编译软件是如何使你的程序在电脑上跑起来的呢?
一. 一个编译软件编译一个程序的过程分为编译,汇编,链接四部分,然后得到一个可执行的文件,即就是我们的目标代码。目标代码当然就是我们有一定逻辑顺序的二进制数啦!二. 下来简单的说一下,编译,汇编,链接的具体过程。编译:编译之前会做一些简单的准备工作,那准备工作就是预处理啦。预处理:在预处理阶段,程序只执行以“#”号开头的命令,即预处理命令,那预处理命令有宏定义,条件编译,还有...原创 2018-04-23 08:20:58 · 1223 阅读 · 0 评论 -
表达式求值
表达式求值的顺序一部分是由操作符的优先级和结合性决定,同样,有些表达式的操作数在求值的过程中可能需要准换为其它类型。隐式类型转换:C的整型算术运算总是至少以缺省类型的精度来进行的,为了获得这个精度,表达式中的字符和短整型操作数在使用之前被转换为普通整形,这种转换称为整形提升。如:char a,b,c; a=b+c;b和c的值被提升为普通整形,然后在执行加法运算。加法运算完成之后,结果将被截断,然后...原创 2018-05-21 07:50:52 · 400 阅读 · 0 评论 -
如何求结构体所占内存大小
1 .要计算结构体所占的内存大小,首先得掌握结构体计算所要掌握的方法;下面以代码为例来说明。#include<stdio.h>int main(){ struct s3 { double d; char c; int i; };printf("%d", sizeof(struct s3));}...原创 2018-05-14 20:22:23 · 2122 阅读 · 0 评论 -
对main函数参数的解析
其实学习C语言以来,一直在用main函数来实现我们先要的逻辑功能。int main(){ printf("hello world"); return 0;}上面是一个简单的main函数,可以看到main函数中是没有的形参的,但看到的不一定就是真的,实际上它是有的。main函数是有三个参数的,可以这样写来说一下,int main(int argc, char*argv[],char *envp[...原创 2018-05-14 20:41:49 · 255 阅读 · 0 评论 -
对递归进行分析一下
其实以前都特别的不理解递归,看到别人在解决复杂问题时,总是通过几行代码就解决了,心理很纳闷。最后分析了一下递归代码,才知道了递归的奥妙所在。下面我写一个程序来分析一下。int sum(n){ if(1==n) return 1; else return sum(n-1)+n;}这个函数是求1+2+3+....+n的和,当n=3时,会返回sum(2)+3,那实际上sum(2)+...原创 2018-05-14 21:54:07 · 598 阅读 · 0 评论 -
C语言的一些简单小函数
一. 编写一个程序,它从标准输入读取C源代码,并验证所有的花括号都正确的成对出现#include<stdio.h>#include<Windows.h>#include<stdlib.h>int main(){ char ch; int count = 0; while ((ch = getchar()) != EOF) { if (ch == '{') ...原创 2018-07-13 10:46:13 · 790 阅读 · 0 评论 -
C语言的程序
输出100到200之间的素数,素数就是除了1和他本身外,不能被其他数整除的数 void isprime() { int i = 0; int count = 0; for (i = 100; i <= 200; i++) { int j = 0; for (j = 2; j <=i; j++) { if (i%j == ...原创 2018-08-03 17:27:37 · 188 阅读 · 0 评论 -
my_strcpy()函数的几种写法比较,
不说了,看代码,比较void my_strcpy(char* dest, char *src)//这样写代码只能得2分,字符串复制函数。{ while (*src != '\0') { *dest = *src; dest++; src++; } *dest = *src;//将最后一个字符‘\0'赋给}void my_strcpy(char* dest, char...原创 2018-04-29 21:32:56 · 1557 阅读 · 0 评论 -
什么是结构体?
一. 首先什么是结构体?其实结构体也是一种数据类型,只不过在这种数据类型中又包含了几个基本的数据类型;但为什么要有结构体这种数据类型呢?试想一下,假如我们要描述一个学生的基本信息,那一个学生有年龄,有性别,有爱好等等,我们要描述这些,我们的基本类型可以吗?显然是不行的,所以我们必须用一个结构体将描述学生的基本信息组合起来,构成一种我们想要的类型;但结构体变量在内存中的存放和我们的基本数据类型变量在...原创 2018-04-23 08:52:28 · 12079 阅读 · 2 评论 -
对野指针的理解
一个指针代表的是一个地址变量,为什么是变量呢?当然因为它的值是变化的了。在计算机中我们找到了一个变量的地址,就相当于找到了这个变量的值,那引用的形式呢就是“*变量名”,这样我们就得到了这个变量的值。为什么会这样呢?我的理解是我们通常找一个人的时候,别人会告诉我们这个人在哪儿,如几号楼,哪个房间号,这就是这个人的地址,我们知道了这个人的地址,我们就可以找到这个人啦,这也就是为什么在计算机中我...原创 2018-04-19 12:40:20 · 310 阅读 · 2 评论 -
创建一个数组, 实现函数init()初始化数组、 实现empty()清空数组、 实现reverse()函数完成数组元素的逆置
直接看代码,没啥说的#include<stdio.h>#include<stdlib.h>//因为函数中使用了system()函数void init(int a[], int sz)//初始化数组{ int i; for (i = 0; i < sz; i++) { a[i] = 0; }} void empty(int a[], int sz...原创 2018-04-23 20:09:49 · 241 阅读 · 0 评论 -
变量在传参后对主函数中原变量的影响
#include<stdio.h>void swap(int a, int b)//用变量接收,这就是我实际过程中写的,天哪,简直被自己蠢死!{ a = a + b; b = a - b; a = a - b;}void swap(int *a, int*b)//用指针接收参数{ *a = *a + *b; *b = *a - *b; *a = *a - *b;}int main()...原创 2018-04-23 21:45:21 · 201 阅读 · 0 评论 -
C语言符号的优先级
一. C语言总共有15个优先级,下面我将一一介绍数字越大所代表的优先级越高二. 15优先级有: 强制,下标,成员,结合性为从左向右,从左向右其实就是我们正常的数学运算符的结合性强制:()这个符号所代表的含义可以有 类型转换,参数表,函数调用。下标:[] 就是数组元素的下标。成员: -> 与. 这两个符号代表的是结构型和共用型成员。14优先级有:逻辑,位,算术,指针,算...原创 2018-04-20 12:30:03 · 38682 阅读 · 1 评论 -
判断一个数是否为素数
#include<stdio.h>#include<stdib.h>int is_prime_number(int n)//判断是否是素数{ int i; if (1 == n) { printf("在素数的定义中素数是大于1的,您输入的不在素数定义范围之内"); return -1;//代表你输入的不在素数的范围 } else { fo...原创 2018-04-25 20:30:36 · 444 阅读 · 0 评论 -
杨氏矩阵
杨氏矩阵:一个二维数组,每一行从左到右递增,每一列从上到下递增。问题:若要从杨氏矩阵中查找一个数字,我们的思路是什么?答: 首先将要查找的数字和这个矩阵中最右上方的数字进行比较,若要找的数和最右上方的数字相等,则查找成功,若比它小,则剔除它所在的列,若比它大,则剔除它所在的行,直到找到想要查找的数字为止。此算法的代码如下:#include<stdio.h>#include<ass...原创 2018-03-13 20:01:39 · 160 阅读 · 0 评论 -
字符串处理的函数
一· strcpy函数的功能:将字符串复制到指定的数组中去。源代码:#include<stdio.h>#include<assert.h>char*strcpy(char*strDest,const char *strSrc){ assert(strDest != NULL);//指针不能为空! assert(strSrc != NULL); char *strDestCo...原创 2018-03-13 20:02:20 · 127 阅读 · 0 评论 -
指针与二维数组
初次理解的二维数组与指针,请大家多多指教#include<stdio.h>int main(){ int aa[2][5] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int *ptr1 = (int*)(&aa + 1); int *ptr2 = (int*)(*(aa + 1)); int *ptr3 = (int*)((aa +...原创 2018-03-30 19:51:41 · 161 阅读 · 0 评论 -
C语言—随练
冒泡排序,求最大公约数,求1到100中9出现的次数的C语言程序void seq(int a[], int num)//冒泡排序{ int i, j, tem; for (i = 0; i < 4; i++) { for (j = 0; j < 5 - i; j++)//因为最后一个已经排好 { if (a[j] < a[j + 1]) { tem = a[j];...原创 2018-04-16 21:58:30 · 207 阅读 · 0 评论 -
宏和函数
一 宏: 一种批量处理的称谓,一般说来,宏是一种规则或模式,或称语法替换,用于说明某一特定输入 ,如何根据预定义规则转换成对应的输出,这种替换在预编译时进行,我们把它称做宏展开。计算机函数:为一个固定的一个程序段,或称其为一个子程序 ,它在可以实现固定运算的同时,还带有一个入口,所谓的入口,就是函数所带的各个参数,我们可以通过这个入口,把函数的参数值代入子程序,供计算机处理,所谓出口,就是...原创 2018-05-11 21:14:23 · 119 阅读 · 0 评论 -
编写shell程序的注意事项
一. 编写shell程序的注意事项1.因为在UNIX中使用的是小写字符,因此在shell编程中可以使用大写字符表示变量以示区别。2.在shell语句中加入必要的注释,以便以后阅读和维护,注释以#开头。3.对shell变量进行运算时,使用乘法符号"*“时,要用转义符”"进行转义4.由于shell对命令中多余的空格不进行任何处理,因此程序员可以利用这一特性调整程序缩进格式,达到增强程序可读性的...原创 2018-10-22 21:51:38 · 568 阅读 · 0 评论