
C
本专栏中是C语言基础知识及一些易错的知识点
Keen_hard
Just a developer
展开
-
C_求整数的位数,顺序和逆序输出
题目如下:先说一下思路:一个整数n求位数,首先申请一个无符号char类型做计数器(最大的整数十位,无符号char类型做计数器可以满足),然后n /= 10,丢掉最后一位,计数器加1,最后可得到位数,代码如下:unsigned char GetPlag(int n){ if (n > INT_MAX || n < INT_MIN) { printf("数值超范围了")...原创 2019-07-23 01:00:54 · 498 阅读 · 0 评论 -
C_哈罗游戏的递归代码实现
哈罗游戏的规则是:有三根柱子,分别标号为a、b、c,要求将a中的大小不同的套圈移至c中,每次只可以移一个套圈且大套圈只能在小套圈的下面。以下为代码: int g_count = 0; void Move(char x,char y) //实现移动,提供移动方案。 { g_count++; printf("%c->...原创 2018-11-02 20:24:03 · 374 阅读 · 0 评论 -
C_gets的安全问题
gets:由于没有办法限制读取的字符数的数量,不受信任的输入很容易导致缓冲区溢出。gets_s:如果 buffer (缓冲器)是 NULL 或 sizeInCharacters 小于或等于零,或者如果缓冲区因过小而无法包含一行输入和 null 结束符,这些函数调用无效参数处理程序,如 参数验证所述。 如果允许执行继续,则这些函数返回 NULL 并设置为 ERANGE(报错打乱) 。...原创 2018-11-02 20:38:36 · 1438 阅读 · 0 评论 -
C_指针总结
指针是什么?内存区的每一个字节有一个编号,这就是“地址”,它相当于房间号。由于通过地址能找到所需的变量单元,我们可以说,地址指向该变量单元。指针就是地址。int a = 10;int b = 20;int *p; // 定义整型指针( 地址) 变量p = &a; //”&” 取地址符,&a 取...原创 2019-07-21 13:15:03 · 174 阅读 · 0 评论 -
C_默认类型转换
1、算术运算式中 , 低类型能够转换为高类型。类型级别 从高到低是 的顺序是 long double, double, float, unsigned long long,long long, long, unsigned int 和 和 int.2、赋值表达式中 , 右边表达式的值自动隐式转换为左边变 量的类型,并赋值给他。3、函数调用中参数传递时 ,系统隐式地将 实参转换为形参...原创 2019-05-17 23:24:51 · 786 阅读 · 0 评论 -
C_指针运算
①指针加指针:指针加指针非法,无意义。②指针减指针:结果为间隔的单元格个数,可正可负。步骤如下:⒈算出间隔的字节数。⒉除以调整权重。例:int main(){ int arr[10] = {1}; int *p = &amp;arr[1];//x+4 int *q = &amp;arr[9];//x+36 printf("%d\n",p-q);//-8 printf("%d\..原创 2018-10-25 18:26:40 · 317 阅读 · 0 评论 -
C_斐波那契数列
关于斐波那契数列(Fibonaccisequence)的学习斐波那数列:又称黄金分割数列、因数学家列昂纳多·斐波那契以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34……,即每一项等于前俩项之和,以此类推。代码如下:int Fibon(int n){int f1 = 1;int f2 = 1;int f3 = 1;for(in...原创 2018-10-25 18:10:22 · 329 阅读 · 0 评论 -
C_sizeof和strlen的辨析
关于字符串的字节和有效长度的笔记C语言规定了一个“字符串的结束标志”,以字符’\’作为结束标志。例如以下题型中的str2,虽然只5个字符,但数组长度是6。sizeof:求的是字节数。strlen:求的是有效长度。以下是几种常见的题型:int main(){ char str1[100] = "abcde";//sizeof,strlen char str2[] = "abcde";...原创 2018-11-02 19:57:55 · 339 阅读 · 0 评论 -
C_关于子函数调用的指针传递和解引用问题
首先以一段代码开始:#include&lt;stdio.h&gt;void Swap(int a,int b){ int tmp; tmp = a; a = b; b = tmp;}int main(){ int a = 1; int b = 2; Swap(a, b); printf("%d\n%d\n", a, b); return 0;}//运行函数..原创 2018-11-20 15:00:38 · 3113 阅读 · 0 评论 -
C_数组越界
关于数组越界的理解代码如下:#include &lt;stdio.h&gt;int main(){int arr[10];for(int i = 0;i&lt;10;i++){arr[i]=0;}return 0;}i代表循环值,栈底的一格储存i,arr代表数组,除了底部的的一格,其余的格子代表储存数组的十个格子,中间有省略的格子,按照程序执行,i从0依次到9,然后在加一...原创 2019-09-14 22:41:33 · 572 阅读 · 0 评论