自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 结构体和联合体 的区别

struct和union都是由多个不同的数据类型成员组成;同一时刻,struct中的数据成员可以都存在,union中的数据成员只能存放被选中的那个;struct的大小是所有数据成员的大小之和,union的大小等于其数据成员中最大的那个;对于union的不同成员赋值,将会对其他成员重写,原来的值就不存在;struct的成员之间就互不影响。

2017-08-05 22:09:30 519

原创 内存对齐正式原则

1、数据类型自身的对齐值,基本数据类型的自身对齐值,等于sizeof(基本数据类型);2、指定对齐值,“#pragma pack(value)”,按照value的值对齐,如8字节或者16字节;3、结构体或者类的自身对齐值,其成员中自身对齐值最大的那个值;4、数据成员、结构体和类的有效对齐值 ,自身对齐值和指定对齐值中最小的那个值。

2017-08-05 21:53:00 283

原创 内存分配方式

内存分配方式有三种 :1.从静态存储区分配;内存在编译阶段即分配好,这块内存在整个程序运行过程中都存在,如全局变量和static变量等;2.在栈上分配,特点是效率高,缺点是分配的内存容量有限。函数内局部变量的分配都在栈上;3.在堆上分配,也称为动态内存分配,生存周期由程序员自己决定,如malloc和new、free和delete等。

2017-08-05 21:37:38 271

原创 内存管理概述

内存管理目的是快速、高效地分配并在适当的时候释放和收回内存。也就是探究你的数据具体放在哪里的问题。内存空间分为几个段,从低地址到高地址分为代码段、数据段、堆栈段。代码段顾名思义就是放代码的;整体的数据段分为数据段、初始化全局变量区、未初始化全局变量区;malloc或者new的内存放置在堆上;系统分配的内存放在栈上。

2017-08-05 21:27:22 207

原创 停车场

#include#include#define OK        0   #define ERROR    -1  int gettime(){struct tm *ptr;time_t t;t=time(NULL);return t;}int interface(){printf("\t\t**********Welcom to ou

2016-12-18 22:33:41 404

原创 将十进制转换成八进制

#include int main(){int n;        int a[12]={0};                                                           //必须初始化,不然输出乱码printf("please input number\n");scanf("%d",&n);                    

2016-12-09 23:48:19 3065

原创 结构体的简单理解

首先,结构体也是一种数据类型,和int,char等一样;但它更像一个集合,结构体当中还包括很多成员,这些成员可以是相同的数据类型,也可以是不同的数据类型;因为结构体是一种数据类型,所以可以定义数据体变量,变量当然也可以初始化,还可以被引用;  数据体变量只能放一组数据,要放多组数据可以用结构体数组,可以按照数组的方式来理解,只不过一个元素当中不再是单个数据,而是多个数据,每一个元素都是结构

2016-12-06 23:56:45 940

原创 输出乘法口诀

#includeint main(){    int i,j;    int sum;                                                                   //定义结果    for(i=1;i    {        for(j=i;j{   sum=i*j;                  

2016-12-05 21:37:49 323

原创 用函数实现字符数组连接

#includechar str_cat(char *str1, const char *str2)                      //定义函数{    int i = 0;    int j = 0;    while(*(str1+i) != '\0')                                                      /

2016-12-04 22:52:39 902

原创 指针实现strlen函数

#includeint len(char *str)                          //定义一个函数{    int i = 0;    while (*(str + i))                      //用while判断字符数组元素不为0    {        i++;                            

2016-12-03 22:30:03 3965

原创 指针实现字符串比较函数strcmp

#includeint strcmp(char *str1, char *str2){    while(*str1 == *str2)                         //比较两个字符串    {        if(*str1 == '\0')        {        return 0;        }        str1++;

2016-12-02 23:54:38 17941 4

转载 指针实现字符串复制

void str_cat(char *deststr, char *srcstr){    char *dtemp = deststr;    char *stemp = srcstr;    while(*dtemp != '\0')    {        dtemp++;    }    while(*srcstr != '\0')    {     

2016-12-01 23:20:51 1273

原创 指针实现字符串复制

void str_copy(char* dest_str, char* src_str){    char* stemp = src_str;    char* dtemp = dest_str;    whie(*stemp!='\0')    {        *dtemp = *stemp;        stemp++;        dtemp++;  

2016-11-30 22:52:41 6677

原创 两个指针变量的减法

#includeint main(int argc, char* argv[ ]){    int data[4] = {1,2,3,4};    int *iptr1 = &data[0];    int *iptr2 = &data[1];    int val;    val = iptr2 - iptr1;    printf("Distrance is%d

2016-11-29 22:33:13 3606 1

原创 使用函数的一个简单例子

要求输出一个四位数,保证它是一个完全平方数的同时,第一位加第三位等于10,第二位乘以第四位等于12;includeint pf(int i)                                                    //定义函数{    int k;    for(k=10;k    {        if((i/k==k)&&(i%k==0

2016-11-28 22:19:57 745

原创 输出1到num当中所有数字中1的个数

#includeint main(){    int i;    int num;    int count = 0;    scanf("%d",&num);    int t;    for(i = 1; i     {           t = i;        while(t)        {                  if

2016-11-27 00:05:54 425

原创 输出一个字符串数组的实际长度

#includeint main(){    char s[10]={'1','x','d','c'};    int i;    for(i=0;i    {        if(s[i]=='\0')        {         break;        }    }         printf("%d",i);     retur

2016-11-25 23:43:28 1342 1

原创 用字符指针变量指向一个字符串,然后输出字符及其长度

#include#include                                         // 要使用strlen函数int main(){    char *p;    p = "hello!";    printf("%s",p);    printf("\nThe length is:%d\n",strlen(p));    retur

2016-11-24 23:31:10 6498 1

原创 二维数组的输入输出及初始化

一维数组的输入输出只有一个for循环就可以搞定,但是二维数组的输入输出要用到for语句嵌套,如:定义一个3行5列的二维数组,并输入输出;#includeint main(){        int a[3][5];    int i, j;    printf("input:");    for (i = 0; i         {         for

2016-11-23 22:36:02 10668

原创 数组和指针的一个例子

#iincludeint main(){    int a[6] = {0,10,20,30,40,50},*pa;   //定义数组和指针;    pa = &a[0];    printf("%d",*pa);                                //指向a[0],*pa相当于&a[0];    printf("%d",*++pa);    

2016-11-22 23:40:50 426

原创 快速找到一串数字中第一个最大的数和第二个最大的数

#include#define N 3                           //定义一个字符常量(不一定是3)int main(){    int a[N];    int i;    int t;    for(i = 0; i     {        scanf("%d",&a[i]);    }    int max;   

2016-11-21 21:52:38 2857

原创 关于指针的简单理解

首先,指针和int、float一样是一种数据类型;它也要有一个变量,称为指针变量,但是这个指针变量里存放的是另一个变量的地址;比如:   int *a;  a=&bookname;  *p整体称为指针变量,a为指针变量名,“ * ”为指针运算符,bookname为另一个变量,这个变量的类型必须和*a的类型一致,为int类型;   &bookname表示为bookname的地址,把这

2016-11-20 23:24:34 215

原创 计算一个语句里字符、空格、数字的个数

#include                                                                                                         //预处理命令int main()                                                                    

2016-11-19 23:42:19 1686

原创 用shell脚本打印0到50zhiji之间的偶数

#!/bin/bash                   #必须要有i=0                                 while [ $i -le 50 ]         #从0到50do     let z=$[$i % 2]         #除以2取余    if [ $z -eq 0 ]            #余数和0比较       t

2016-11-18 23:25:47 1623

原创 虚拟机文件夹共享到主机

首先打开主机》打开D盘》新建文件夹a》打开虚拟机》点击“虚拟机”》点击设置》点击“属性”》点击文件夹共享》在右边界面添加文件夹a》点击确定》打开虚拟机终端》输入命令cd /mnt/hgfs/a即可

2016-11-17 22:56:30 338 1

原创 shell脚本的一个简单运算

从终端读取1到100 的数字,测试大小,如果小于30,则显示“该数小于30”,如果大于30并且小于80,则输出“该数大于30且小于80”,如果大于80,则显示“该数大于80”;#!/bin/bash                                     #必须要有read i                                                #

2016-11-15 23:33:42 686

原创 一维数组的简单理解

今天看了数组的相关知识,对数组有了重新的认识,数组它就相当于一个存储空间,用来存放一些相同类型的常量;int a[10]我的理解是分配了一个空间,这个空间可以存放十个整形常量,并且空间的命字叫做a;【】中可以是一个常量值,也可以是一个表达式,比如[2*5];int a[10]中的数据表示可以用加下标的方式表示,比如依次叫a[0]、a[1]、a[2]、a[3]、a[4]、a[5]、a[6]、

2016-11-14 23:43:20 766

原创 基本数据类型知识汇总

今天讲的知识比较多,这里总结一下:    先讲了常用单位,有位、字节、字,位只有0或者1,一个字等于八位,具体的一个字等于多少位要看在什么机器上跑,机器是多少位的一个字就是多少位;    接着讲了数据基本类型,有整形、浮点型,整形又分基本整形、长、短整形和无符号整形;浮点型有称实型,分单精度和双精度,单精度float有效值只有七位,double一般有十五位,一般不用浮点型比较大小,因为它只

2016-11-13 23:47:04 305

原创 shell脚本中比较并输出最大值

#!/bin/bash    echo " input first parm:"    read a    echo " input second parm:"    read b    echo " input third parm:"    if [ $a -gt $b -a $a -gt $c ]    then    echo "max is $a"  

2016-11-12 23:52:17 11137

原创 一些简单操作

grep 'printf' hello.c是显示hello.c文件中的以printf 为开始的行;man加 命令名表示要查找Linux的命令的相关信息和完整说明;  ls -F表示显示目录下的所以文件,并且用*加在可执行的文件后面,用/加在目录后面;cat hello.c 表示显示hel0l.c的具体内容;alias md='mkdir'表示用md来替代并简化mkdir命令;

2016-11-09 23:20:38 271

原创 vi的简单操作

vi有三种模式:命令行模式,插入模式,末行模式。按“i”切换到插入模式;esc 切换到命令行模式;行数n加G是光标显示到n一行;/加要查找的内容是从光标处向下查找,向上查找则是?加内容;gg光标显示到最后一行;nyy是从光标向后n 行复制,按P粘贴;ndd是删除从光标向后的n行;u是撤销操作;U是撤销所有操作;shift加:再加x是退出。

2016-11-08 23:28:53 192

原创 最大值输出

#includeint main(){     float a,b,c,max;    printf("inputa,b,c");     scanf("%f%f%f",&a,&b,&c);     if(a>b)     {            max=a;      }     else     {            max=b;

2016-11-07 22:23:16 807

原创 第一天博客

第一次写博客 就写一点简单的。今天学了LinuxC的一些基础,列如Linux简介·系统结构·文件操作可能第一次接触,觉得那么多指令好难记,编程输出一个“Hello,world!”倒不是是什么问题,很简单,下面附上代码:#includeint main(){    printf("Hello,world!/n");    return 0;}  接下来对重定向

2016-11-06 22:23:56 164

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除