C语言
IT_iverson
欢迎大家一起交流学习,点击一篇博客进入分类中方便自己阅读!
展开
-
模拟实现strlen/strcpy/strcat/strcmp/strstr/strchr/函数
一.strlen函数作用:检测符串长度,不包括\0在内.#include #include #include int main() { int my_strlen( const char *src); char *src = "hello,world...."; printf("%d", my_strlen(src)); system("pause"); return 0; } int原创 2017-04-27 20:33:16 · 639 阅读 · 0 评论 -
浅谈函数的调用和栈帧的创建和销毁
演示代码: #include int Add(int x,int y) { int z=0; z=x+y; return z; } int main() { int a=10; int b=20; int ret=0; ret=Add(a,b); return 0; } 转到反汇编如下: 第一部分: int main() { 00AE1420 pu原创 2017-05-21 14:17:41 · 863 阅读 · 0 评论 -
结构体内存对齐
关于结构体的内存对齐文体,主要遵循下面几个原则,记住就好。 1.结构体的第一个成员永远都放在结构体的0偏移处。 2.从第二个成员开始,都要对其到某个对齐数的整数倍处。 (对齐数:结构体成员自身大小和默认对齐数的较小值; 默认对齐数:VS编译器下:8,linux:4) 3.结构体的总大小必须是最大对齐数的整数倍。 注意:0偏移处大家可能有所疑问,其实就是系统默认从哪个位置开始分配内存原创 2017-07-08 12:35:50 · 851 阅读 · 0 评论 -
数组指针,指针数组,函数指针,函数指针数组,函数指针数组指针
开门见山,今天的主要内容是:指针数组,数组指针,函数指针,函数指针数组,函数指针数组指针。 看见题目是不是有点晕晕的感觉,没关系等看完这篇博客你会觉得他们其实也很好理解的! 接下来我一个一个介绍。 一.指针数组 顾名思义,指针数组就是一个数组里面存放的内容是指针 如:int *p1[10]解析1.首先写出一个数组:p1[10],这是一个大小为10的数组 2.其次原创 2017-07-16 14:06:35 · 900 阅读 · 1 评论 -
malloc,calloc,realloc
对于内存,我们可以简单的理解分为三个区:静态区,栈区,堆区 静态区:全局变量,静态局部变量(static),静态取的内容在整个程序的生命周期内都在,由编译器编译的时候分配。 栈区:局部变量,函数形参。栈上的内容只在函数的范围内存在,当函数运行结束,这些内容就被销毁。 栈区特点:效率高,但是空间大小有限。系统分配好以后就不能在改变。 堆区:由malloc系列函数或new(c++内容)操作符分原创 2017-07-18 11:46:54 · 537 阅读 · 0 评论 -
读写文件的操作
接下来重点介绍几个常用的文件操作函数 一.fopen fclose .首先是fopen,它用来打开一个文件 FILE *fopen( const char *filename, const char *mode ); 其原型如上,返回一个操作文件的指针,参数是文件名和打开要进行的操作方式,如果打开失败就会返回NULL int fclose( FILE *stream );原创 2017-07-20 19:35:47 · 477 阅读 · 0 评论 -
注释转换(C注释转换为c++注释)
首先说明一下转换思想方法: 1.创建两个文件input.c和output.c,input.c里面用来读取c语言的注释,output.c里面保存转换成为c++的注释,中间的转换过程就是代码完成,当然文件名字和作用自己规定 2.转换的实际过程就是从存放c语言注释的文件中读取数据这里是一个字符一个字符读取,然后通过相关的函数将其转换为c++注释后的代码再写入保存c++注释的文件中 当然这里会用fg原创 2017-07-30 20:44:40 · 786 阅读 · 0 评论 -
初学分享,求指教
一,将两个数组种的值进行交换,代码如下,请问还有更好的更简单的方式么,求教 #include int main() { int a[4] = { 1, 2, 3, 4 }; int b[4] = { 5, 6, 7, 8 }; int i, c; for (i = 0; i { c = a[i]; a[i] = b[i]; b[i] = c; printf("%d", a原创 2017-03-21 18:02:50 · 380 阅读 · 0 评论 -
用函数实现二分查找法
#define _CRT_SECURE_NO_WARNINGS 1 #include #include int select_(int arr[], int key, int left, int right)//定义函数的返回值类型和函数的形参类型 { while (left { int mid = left + (right - left) / 2;//数组的中间元素的位置下标原创 2017-04-09 13:20:35 · 1096 阅读 · 0 评论 -
对于数组和指针运算
最近回顾了一下数组的相关内容,发现在这之前自己的《数组种的sizeof和strlen》的这篇博客中有一些不 足和错误的地方,所以今天再次纠正和回顾 int a[] = { 1, 2, 3, 4 }; printf("%d\n", sizeof(a));//16 单独放在括号内,代表整个数组,int[4] printf("%d\n", sizeof(a+0));//4原创 2017-07-07 16:16:40 · 567 阅读 · 0 评论