
C语言
IT_iverson
欢迎大家一起交流学习,点击一篇博客进入分类中方便自己阅读!
展开
-
模拟实现strlen/strcpy/strcat/strcmp/strstr/strchr/函数
一.strlen函数作用:检测符串长度,不包括\0在内.#include#include#includeint 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 · 741 阅读 · 0 评论 -
浅谈函数的调用和栈帧的创建和销毁
演示代码:#includeint 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 · 974 阅读 · 0 评论 -
结构体内存对齐
关于结构体的内存对齐文体,主要遵循下面几个原则,记住就好。1.结构体的第一个成员永远都放在结构体的0偏移处。2.从第二个成员开始,都要对其到某个对齐数的整数倍处。(对齐数:结构体成员自身大小和默认对齐数的较小值; 默认对齐数:VS编译器下:8,linux:4)3.结构体的总大小必须是最大对齐数的整数倍。注意:0偏移处大家可能有所疑问,其实就是系统默认从哪个位置开始分配内存原创 2017-07-08 12:35:50 · 966 阅读 · 0 评论 -
数组指针,指针数组,函数指针,函数指针数组,函数指针数组指针
开门见山,今天的主要内容是:指针数组,数组指针,函数指针,函数指针数组,函数指针数组指针。看见题目是不是有点晕晕的感觉,没关系等看完这篇博客你会觉得他们其实也很好理解的!接下来我一个一个介绍。一.指针数组顾名思义,指针数组就是一个数组里面存放的内容是指针如:int *p1[10]解析1.首先写出一个数组:p1[10],这是一个大小为10的数组 2.其次原创 2017-07-16 14:06:35 · 1058 阅读 · 1 评论 -
malloc,calloc,realloc
对于内存,我们可以简单的理解分为三个区:静态区,栈区,堆区静态区:全局变量,静态局部变量(static),静态取的内容在整个程序的生命周期内都在,由编译器编译的时候分配。栈区:局部变量,函数形参。栈上的内容只在函数的范围内存在,当函数运行结束,这些内容就被销毁。栈区特点:效率高,但是空间大小有限。系统分配好以后就不能在改变。堆区:由malloc系列函数或new(c++内容)操作符分原创 2017-07-18 11:46:54 · 672 阅读 · 0 评论 -
读写文件的操作
接下来重点介绍几个常用的文件操作函数一.fopen fclose.首先是fopen,它用来打开一个文件FILE *fopen( const char *filename, const char *mode );其原型如上,返回一个操作文件的指针,参数是文件名和打开要进行的操作方式,如果打开失败就会返回NULLint fclose( FILE *stream );原创 2017-07-20 19:35:47 · 567 阅读 · 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 · 916 阅读 · 0 评论 -
初学分享,求指教
一,将两个数组种的值进行交换,代码如下,请问还有更好的更简单的方式么,求教#includeint 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 · 449 阅读 · 0 评论 -
用函数实现二分查找法
#define _CRT_SECURE_NO_WARNINGS 1#include#includeint select_(int arr[], int key, int left, int right)//定义函数的返回值类型和函数的形参类型{while (left {int mid = left + (right - left) / 2;//数组的中间元素的位置下标原创 2017-04-09 13:20:35 · 1177 阅读 · 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 · 660 阅读 · 0 评论