C语言
Victor_psl
这个作者很懒,什么都没留下…
展开
-
预编译,编译,汇编,链接原理
限于自己水平有限,况且前者总结的真的好,所以就拿来主义了!楔子我们在各自的电脑上写下代码,得明白我们代码究竟是如何产生的,不想了解1,0什么的,但这几个环节必须掌握吧。我们的代码会经过这4个环节,从而形成最终文件,c语言作为编译语言,用来向计算机发出指令。让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。预处理, 展开头文件/宏替换/去掉注释/条件编译 (test.i main .i)编译, 检查语...转载 2020-08-04 15:33:43 · 257 阅读 · 0 评论 -
C语言的算术优先级
语言的i运算符包括单目运算符、双目运算符、三目运算符,优先级如下:第1优先级:各种括号,如()、[]等、成员运算符 . ;第2优先级:所有单目运算符,如++、--、!、~等;第3优先级:乘法运算符*、除法运算符/、求余运算符%;第4优先级:加法运算符+、减法运算符-;第5优先级:移位运算符<<、>>;第6优先级:大于运算符>、大于等于运算符>=、小于运算符<、小于等于运算符<=;第7优先级:等于运算符==、不等于运算符!=;第8原创 2020-08-01 19:44:29 · 11830 阅读 · 0 评论 -
strcpy()和strncpy()
strcpy 和 strncpy 函数的缺陷有哪些?你如何解决?有替代函数吗?strcpy复制字符串;并且dest的长度要大于等于src的长度,否则会内存溢出;那么把最后一个字符制空或者赋值'\0';以'\0'结尾strncpy复制n个字符;dest的长度大于等于n;最好大于等于strlen(n)+1,1为'\0';否则会内存溢出memcpy复制任意类型;dest的长度大于等于n,否则会抛出异常;复制的内容有'\0'时,可以赋值'\0',赋值size长度,用memcpy很方便。测试代码:原创 2020-07-21 22:22:06 · 199 阅读 · 0 评论 -
实现myatoi函数
myatoi()函数堪称经典,我相信很多童鞋都可以做出来,但是要做好却不容易。下面来看看myatoi()函数实现功能:(1)八进制,十进制,十六进制字符分别转整形数字 (2)遇到'.'退出 (3)有正负数 (4)防止整形数字越界,INT_MAX,INT_MIN ...原创 2020-07-14 19:45:45 · 1535 阅读 · 0 评论 -
指针数组和数组指针的区别
一、指针数组和数组指针的内存布局初学者总是分不出指针数组与数组指针的区别。其实很好理解:指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身决定。它是“储存指针的数组”的简称。数组指针:首先它是一个指针,它指向一个数组。在32 位系统下永远是占4 个字节,至于它指向的数组占多少字节,不知道。它是“指向数组的指针”的简称。下面到底哪个是数组指针,哪个是指针数组呢:A...转载 2020-03-17 02:04:58 · 321 阅读 · 0 评论 -
const的用法
先我们来看一下为什么要使用const呢?因为采用符号常量写出的代码更容易维护;指针常常是边读边移动,许多函数参数都是只读不谢的,const最常见的用法就是作为数组的界和switch分情况标记(也可以用枚举符代替)。分类:常变量:const 类型说明符 变量名常引用: const 类型说明符 & 引用名常对象:类名::fun(形参) const常数组:类型说明符 ...转载 2020-03-17 02:02:50 · 494 阅读 · 0 评论 -
C语言详解itoa和atoi
C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串。1.int/float to string/array:C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串,下面列举了各函数的方法及其说明。● itoa():将整型值转换为字符串。● ltoa():将长整型值转换为字符串。● ultoa():将无符号长整型值转换为字...转载 2020-03-07 19:33:57 · 1051 阅读 · 0 评论 -
C语言--疑问解析
1.局部变量未初始化值不确定,全局变量初始值为0;(vs2017局部变量不初始化报错)2.大小端模式问题:大端模式:高位数据存储在低地址内存单元,数据的低位数保存在高地址内存单元中。即地址由低到高,而数据字节位数由高到低。小端模式:数据的低位字节保存在高地址内存单元,数据的高字节保存在低地址内存单元中。即地址由低到高,数据字节位数由高到低。假设变量x的类型为int,位于地址Ox:1...原创 2020-03-07 12:06:19 · 305 阅读 · 0 评论 -
堆和栈
堆和栈的区别:作为开发人员,面对堆和栈这两个概念时,在不同的情况下,有不同的含义。一般情况下,有这两种含义:1)在内讲,作为内存的管理方式。2)在数据结构下,堆和栈作为两种常用的数据结构。栈简介:栈由操作系统分配,用来存储局部变量,函数参数等,其操作方式类似与操作系统中的栈。变量根据先后顺序压入栈中,并且相邻的变量之间不会有其他变量,栈的地址由高到低,后定义的变量地址小于先定义的变量地址...原创 2020-03-06 03:10:02 · 236 阅读 · 0 评论 -
二维数组查找数字--C语言
其实遍历数组依次比较也可以,这里我们讨论有序二维数组查找。问题:我们知道数组是从左至右,从上到下递增。输入数字,判断数组里面是否含有该整数。具体怎么判断分析不再赘述,(《剑指offer》P45)总结如下规律:1.选取右上角的数字(左下角也可以)。 2.如果要查找的数字等于该数字,结束查找;如果该数字大于要查找的数字。则剔除这个数字所在的列;...原创 2020-02-18 15:42:58 · 1039 阅读 · 0 评论 -
逆置--(数字,字符串,数组,二进制,顺序表,链表)--c语言
//数组void Reverse_Array(int *arr,int len){ int i = 0; int tmp = 0; for(i = 0;i < len/2;i++) { tmp = arr[i]; arr[i] = arr[len - 1 - i]; arr[len -1 - i] = tm...原创 2019-12-31 23:25:31 · 212 阅读 · 0 评论 -
位运算总结--C语言
1.类型转换int main() { char a = 129; char b = 255; char c = -1; int d = a; printf("%d\n",d);//-127 d = b; printf("%d\n",d);//-1 d = c; printf("%d\n",d);//...原创 2019-12-30 22:25:51 · 413 阅读 · 0 评论 -
输出为“魔方阵”
所谓“魔方阵”是指每一行每一列和对角线之和均相等。例如:8 1 6 3 5 74 9 2思路:1.数字1在方第一行中间一列2.下一个数字在上一个数字的上一行下一列3.如果当前位置有数字,则本次数字为上一个数字的下一行void MagicSquare(){#define ROW 5 assert(ROW%2!=0);////////奇数 int arr[RO...原创 2019-10-25 16:04:20 · 600 阅读 · 0 评论 -
值交换-----const常量,数字,字母,字符串
const常量,数组,字符串常量的值交换 小伙伴们在刷题的时候,会大量遇到值交换的问题。常常让人摸不着头脑,因为不同的情况,方法不同。比如比较大小,顺序输出,排序等问题时都要用到。所以小编决定将这些“大脑阔”的问题理顺,不再让人感觉丈二和尚摸不着头脑。给小伙伴们送上“武功秘籍”。const常量 首先,告诉什么是const常量:const 修饰的变量成为常量 const 对象定义的时候必须...原创 2019-10-26 23:16:36 · 493 阅读 · 0 评论 -
输入字符串,拟置输出
输入字符串并拟置char *Reverse(char *str,int len)/////////输出为拟置{ if(!str) { return NULL; } char c; //int len = strlen(str); int i = 0; for(i = 0;i < len/2;i++) { c= str[i]; str[i] = str[len-...原创 2019-10-25 15:14:27 · 206 阅读 · 0 评论 -
统计字符串中的最长单词,英文字母,空格,数字,其他字符--C语言
/////////////////////////////////////////////////////求最长单词#include<stdio.h>#include<string.h>#include<stdlib.h>#include<assert.h>#include<ctype.h>void MaxWord(co...原创 2019-12-24 20:34:12 · 1095 阅读 · 0 评论 -
约瑟夫环--C语言解析
约瑟夫环问题约瑟夫环:在我们C语言的初学基础中,会遇到魔方阵,做游戏踢出队列。都要用到循环数组。魔方阵之前有讲解,今天只说做游戏踢出队列。这类问题有很多说法。现在我们说做游戏退出:有n个人,在一起做游戏,由第一个人从1开始数,数到m,第m个人退出。接着m的下一个人从1开始数,数到m,第m个人退出。如果说数了第n个人,那么接着从第一个人依次数,这样循环踢人,直到游戏仅剩余1人。思路:定义数...原创 2019-11-20 13:39:41 · 7130 阅读 · 5 评论 -
动态开辟二维数组--C语言
#include<stdio.h>#include<stdlib.h>#include<malloc.h>/////////////////////////////动态开辟二维数组void Dyadic_Array(){#define ROW 5#define COL 5 int** arr = (int** )malloc(sizeof(int...原创 2019-12-03 01:12:48 · 465 阅读 · 0 评论