- 博客(8)
- 收藏
- 关注
转载 位运算
1,确定符号位:想要得到 1, 就要给想换的那个位置或上一;想要得到0,就要给想换的那个位置与上一;2,确定数字;3,构造一个数字。例题:去掉最后一位 | (101101->10110) | x >> 1 ;把最后一位变成1 | (101100->101101) | x | 1 ;把最后一位变成0 | (101101->101100) | x&1...
2018-11-21 17:50:13 126
原创 结构体的大小
typedef struct student { char a; int b; float c; double d }stu;int main(){ int a = sizeof(stu); printg("%d\n",a); }这个结果为看来结构体的大小并不是简单的将结构体中所有数据类型相加那么简单这是因...
2018-11-21 17:49:23 147
原创 strcat strcmp strlen函数的实现
#include<stdio.h>char *Mystrcat(char *arr,const char *brr) //字符串连接函数{ char *p = arr; while(*p++); p--; while(*p = *brr); return arr;}int Mystrcmp(const char *arr,const char *brr)//字符...
2018-11-02 14:43:39 133
原创 经典递归算法 汉诺塔
函数的递归 前进(规模缩小),边界条件,返回段,自己调用自己在写汉诺塔之前 先给大家介绍下递归算法 举个例子:我要写一个我自己的打印函数Myprint()将12345 这个数 挨个数字 打印出来void MyPrint(int n){ if(n > 10) MyPrint(n/10); printf("%d ",n%10);}就像上面...
2018-11-02 14:17:25 323
原创 指针加法
指针+—数字,在上图中右边的程序代码中 指针自加 所以是加到字节上 还是单元格上 还是直接加完整个数组呢?如图:int型是四个字节 所以在数字1储存内存中时 是以图中蓝色方框的形式以16进制来储存如果是加一个字节那么程序块的执行结果就会出现像上图那种情况 红色格子 修改掉了 蓝色格子和绿色格子的数字 出现大的数字 所以加一个字节是不成立的。指针±数字,地址值需要调整,调整的权重为si...
2018-11-02 13:19:10 833
原创 子函数修改父函数的值
交换两个数的值 这个程序我们之前已经写过了,通过一个中间变量来实现如下: void Swap_err1(int a,int b) { int tmp ; tmp = a; a = b; b = tmp; printf("%d,%d\n",a,b); } int main() { int a = 10...
2018-11-02 12:52:06 855
原创 数组的越界问题
假如我们像如下这样写出一个数组:#include <stdio.h>void Show(int arr[10]){ for(int i=0;i<=10;i++) // i=10的时候数组将发生越界 { arr[i]=0; printf("%d\n",i); }}int main(){ int arr[10] Show(arr); retur...
2018-10-26 18:10:53 632
原创 正序逆序输出一个n位十进制数字
#include<stdio.h>int Mysqrt(int n){int i;for(i=0;ii<=n;i++)//33{;}return i-1;//return sqrt(n);}//统计十进制n的位数int GetFigures(int n){int count = 0;do{count++;n /= 10;//丢弃个位 123...
2018-10-26 17:35:32 332
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人