20150605字符串及内存管理

来源:互联网 发布:js获取input text 编辑:程序博客网 时间:2024/06/06 04:50


main.c文件

//

//  main.c

//  IOS150605

//

//  Created byPeng Junlong on 15/6/5.

//  Copyright (c) 2015 Peng Junlong. All rights reserved.

//


#include <stdio.h>

#include <ctype.h>


//*****************************

//*                           *

//*         字符串             *

//*                           *

//*****************************


//字符串操作


//int     isalnum(int);

//int     isalpha(int);

//int     isblank(int);

//int     iscntrl(int);

//int     isdigit(int);

//int     isgraph(int);

//int     islower(int);

//int     isspace(int);

//int     isupper(int);

//int     isxdigit(int);

//int     tolower(int);

//int     toupper(int);

//int     isascii(int);

//int     toascii(int);

//int     _tolower(int);

//int     _toupper(int);

//int     digittoint(int);

//int     ishexnumber(int); //等同于isxdigit

//int     isnumber(int);    //等同于isdigit


//int main(int argc, const char * argv[]) {

//    

//    printf("isalnum = %d\n",isalnum('a'));//判断是否是字母或者数字字符

//    printf("isalnum = %d\n",isalnum(' '));

//    

//    printf("isalpha = %d\n",isalpha('a'));//判断是否为英文字母字符

//    printf("isalpha = %d\n",isalpha('0'));

//    

//    printf("isdigit = %d\n",isdigit('0'));//判断是否为十进制数字字符

//    printf("isdigit = %d\n",isdigit('a'));

//    

//    printf("isgraph = %d\n",isgraph('a'));//判断是否为可见字符

//    printf("isgraph = %d\n",isgraph(' '));

//    

//    printf("islower = %d\n",islower('a'));//判断是否为小写字母

//    printf("islower = %d\n",islower('A'));

//    

//    printf("isupper = %d\n",isupper('A'));//判断是否为大写字母

//    printf("isupper = %d\n",isupper('a'));

//    

//    printf("isxdigit = %d\n",isxdigit('a'));//判断是否为16进制字符

//    printf("isxdigit = %d\n",isxdigit('g'));

//    

//    printf("tolower = %c\n",tolower('A'));//将大写字母转换成小写字母

//    printf("toupper = %c\n",toupper('a'));//将小写字母转换成大写字母

//    

//    printf("digittoint = %d\n",digittoint('e'));//把十六进制字符转换成整型数据

//    

//    printf("isspace = %d\n",isspace(' '));

//    printf("isblank = %d\n",isblank(' '));

//    return 0;

//}


//字符串

//"Hello China"

//1.字符串中的每一个字符占一个字节

//2.字符串必须用""包含

//3.字符串的末尾必须要有'\0'

//4.打印字符串用%s占位符,只需要传递字符串的首地址

//5.字符串可以用字符数组存储或者存储在堆内存中


//int main(int arg, const char *argv[])

//{

//    char str[] = "Hello China"; //  隐含包括一个'\0'字符;省略数组长度必须初始化数组

//    printf("size = %lu\n",sizeof(str));

//    

//    printf("%s\n",str);

//    return 0;

//}


//int main(int arg, const char *argv[])

//{

//    char str1[] = "Hello China";

//    char *str2  = "Hello China";

//    

//    str1[5] = 'A';

//    //*(str2 + 5) = 'A';//str2指针指向字符串常量,不能修改字符串常量

//    

//    printf("str1 = %s\n",str1);

//    printf("str2 = %s\n",str2);

//    

//    //str1 = "Hello World"; //  可以对字符指针变量赋值,但不能对数组名赋值

//    str2 = "Hello World";

//    printf("str1 = %s\n",str1);

//    printf("str2 = %s\n",str2);

//}


//字符串长度(字符串的有效长度,有效长度不包含'\0')

#include <string.h>


//unsigned long --> size_t

//size_t strlen(const char *);

//int main(int arg, const char *argv[])

//{

//    char str[] = "Hello China";

//    

//    printf("size = %lu\n",sizeof(str));//字符串在内存中占用的大小

//    printf("length = %lu\n",strlen(str));

//    

//    return 0;

//}



//字符串拷贝

//char*strcpy(char *dest, const char *src);   //src的字符复制到dest,返回dest的地址;dest指针指向的内存空间足够容纳src字符串

//char*strncpy(char *, const char *, size_t); //dest:目的缓冲区,src:源字符串,n:最多拷贝的字符个数


//char *my_strcpy(char *dest, const char *src)

//{

//    int i=0;

//    while (src[i] != '\0') {

//        *(dest+i) = src[i];

//        i++;

//    }

//    *(dest+i) = '\0';

//    return dest;

//}

//

//int main(int arg, const char *argv[])

//{

//    char *str1 = "Hello China";

//    char str2[100] = {};

//    

//    strncpy(str2, str1, 2);

//    printf("str2 = %s\n",str2);

//    

//    //printf("str2 = %s\n",my_strcpy(str2,str1));

//    

//    //strcpy(str2, str1);

//    //printf("str2 = %s\n",str2);

//    

//    return 0;

//}


//字符查找函数

//char*strchr(const char *, int); //正序查找字符,返回字符在源字符串第一次出现的位置(地址)

//char*strrchr(const char *, int); //倒序查找字符,返回字符在源字符串第一次出现的位置(地址)


//char *my_strchr(const char *src,int index)

//{

//    int i =0;

//    while (src[i] != '\0') {

//        if (src[i] == index) {

//            return (char *)(src+i);

//        }

//        else

//        {

//            i++;

//        }

//    }

//    

//    

//    return NULL;

//}

//

//int main(int arg, const char *argv[])

//{

//    char *str = "Hello World";

//    

//    printf("%s\n",my_strchr(str, 'k'));

//    printf("%s\n",strchr(str, 'o'));

//    printf("%s\n",strrchr(str, 'o'));

//    return 0;

//}


//字符串比较

//int strcmp(const char *, const char *);

//int strncmp(const char *, const char *, size_t);


//int my_strcmp(const char *str1, const char *str2)

//{

//    int i=0;

//    while (str1[i] && str2[i] && *(str1+i) == *(str2+i)) {  //若一个结束,另一个还有,'\0'

//        i++;

//    }

//    return str1[i] - str2[i];

//}

//int main(int arg, const char *argv[])

//{

//    char *str1 = "Hello World";

//    char *str2 = "Hello Sorldas";

//    

//    printf("%d\n",my_strcmp(str1, str2));

//    

//    printf("%d\n",strcmp(str1, str2));  //从左到右逐个比较两个字符串字符的大小,str1中的字符减去str2中的字符,

//                                        //返回两个字符的差,只要有一个不同后面的就不再比较

//    

//    printf("%d\n",strncmp(str1, str2,7));//比较两个字符串的前n个字符

//    

//    return 0;

//}


//字符串拼接函数

//char*strcat(char *dest, const char *src);

//char*strncat(char *dest, const char *src, size_t n);//n:是最多往dest里拼接的字符个数


//char *my_strcat(char *dest, const char *src)

//{

//    int i = 0;

//    int j = 0;

//    while (dest[i] != '\0') {

//        i++;

//    }

//    while (src[j] != '\0') {

//        dest[i] = src[j];

//        i++;

//        j++;

//    }

//    dest[i] = src[j];

//    

//    return dest;

//}

//

//int main(int arg, const char *argv[])

//{

//    char str1[100] = "HelloWorld";

//    char str2[]    = "Peng";

//    //printf("str = %s\n",my_strcat(str1, str2));

//    //printf("str = %s\n",str1);

//    printf("str = %s\n",strncat(str1, str2,10));

//    

//    

//    return 0;

//}


//字符串分割函数

//char*strtok(char *src, const char *delim);

//src:被分割的字符串

//delim:分隔符字符串.一定要用双引号包含


//int main(int arg, const char *argv[])

//{

//    char str[100] = "Hello world* peng #:Junlong";

//    

//    char *pstr = strtok(str, " ");

//    printf("pstr = %s\n",pstr); //  结果:pstr = Hello

//    

//    pstr = strtok(NULL, "* ");

//    printf("pstr = %s\n",pstr);//结果:pstr = world    ,底层有一个指针记录了w的位置

//    for (int i=0; i<100; i++) {

//        printf("%c",str[i]);

//    }

//    printf("\n");

//    pstr = strtok(NULL, " #:");

//    printf("pstr = %s\n",pstr);

//    pstr = strtok(NULL, " #:");

//    printf("pstr = %s\n",pstr);//最后不能分割时返回的时NULL

//    pstr = strtok(NULL, " #:");

//    printf("pstr = %s\n",pstr);//最后不能分割时返回的时NULL

//    

////    char *pstr = str;

////    

////    while ((pstr = strtok(pstr, "* #:"))) {

////        printf("%s\n",pstr);

////        pstr = NULL;

////    }

//    

//    return 0;

//}


//查找子字符串函数

//char*strstr(const char *, const char *);


//int main(int arg, const char *argv[])

//{

//    char *src = "Hello WorldPengJunlong";

//    printf("str = %s\n",strstr(src, "World"));

//    printf("str = %s\n",src);

//    return 0;

//}


//输入两个字符串,以第二个字符串整体作为分割条件把第一个字符串进行分割,然后输出分割之后的单词。

//比如:

//输入:

//Hi#@wel@come#@to#@qian#feng

//#@

//输出:

//Hi

//wel@come

//to

//qian#feng


//char *my_strstr(const char *src, const char *sub)

//{

//    char *pstr = src;

//    int len = (int)strlen(src);

//    int sublen = (int)strlen(sub);

//    int j=0;

//    for (int i=0; i<len; i++) {

//        for (int j=0; j<sublen; j++) {

//            

//        }

//        if (src[i] == sub[j]) {

//            pstr = src+i;

//        }

//    }

//    while (src[i]) {

//        <#statements#>

//    }

//}


//int main(int arg, const char *argv[])

//{

//    char str[100] = {};//"Hi#@wel@come#@to#@qian#feng";

//    char substr[20] = {};

//    gets(str);

//    gets(substr);

//    char *pstr1 = str;

//    char *pstr2 = str;

//    int len = (int)strlen(substr);

//    while ((pstr1 = strstr(pstr1, substr))) {

//        *pstr1 = '\0';

//        printf("%s\n",pstr2);

//        pstr1 += len;

//        pstr2 = pstr1;

//    }

//    if (*pstr2) {

//        printf("%s\n",pstr2);

//    }

//    return 0;

//}


//sscanf  sprintf

//int sprintf(char * __restrict, const char * __restrict, ...)

//格式化往字符缓冲区写入字符串


//int sscanf(const char * __restrict, const char * __restrict, ...)



//int main(int arg, const char *argv[])

//{

//    char buf[100] = {};

//    int a = 100;

//    float f = 3.14;

//    int ret;

//    ret = sprintf(buf, "this int number is %d,and float number is %.2f\n",a,f);

//    

//    printf("buf = %s\n",buf);

//    printf("length = %d\n",ret);

//    

//    

//    char *src = "#234$4.22fs*";

//    int b;

//    float f1;

//    float f2;

//    ret = sscanf(src, "#%d$%ffs*",&b,&f1);//"#%d$%ffs*"格式对src进行解析,成功解析赋值几个就返回几

//    

//    printf("b = %d,f1 = %f\n",b,f1);

//    printf("length = %d\n",ret);

//    

//    ret = sscanf(src, "#%d$%ffs%f*",&b,&f1,&f2);

//    printf("b = %d,f1 = %f,f2 = %f\n",b,f1,f2);

//    printf("length = %d\n",ret);

//    return 0;

//}



//

//  MemoryManage.c

//  IOS150605

//

//  Created by qianfeng on 15/6/5.

//  Copyright (c) 2015 Peng Junlong. All rights reserved.

//


MemoryManage.c文件


//*****************************

//*                           *

//*         内存管理           *

//*                           *

//*****************************


#include <stdio.h>

//内存管理  :内存地址从低到高如下:

//.text:存储二进制可执行程序

//.data:初始化的全局变量及初始化的static关键字修饰的变量,分为只读数据段及可读可写数据段,只读数据段存储常量,:"hello"

//.bss:未初始化的全局变量及未初始化的static修饰的变量

//.heap:堆内存,手动申请,手动释放(使用mallocfree)

//.stack:栈内存,存储局部变量



//static 关键字    ---static关键字和extern关键字不能同时修饰一个变量

//1.修饰局部变量,全局变量的生命周期,局部变量的作用域

//2.修饰全局变量,全局变量只能在当前定义的文件中可以访问

//3.修饰函数,函数只能在定义的文件中使用,其他外部文件不可以调用


void print_num(void)

{

    static int num = 100;   //只有该函数第一次被调用的时候才会定义num;

    for (int i=0; i<5; i++) {

        printf("num = %d\n",num++);

    }

}


//修饰函数

static void print_Hell0()

{

    printf("Hello Peng\n");

}


int main(int argc, const char *argv[])

{

    print_num();

    print_num();

    print_Hell0();

    

    return 0;

}



main.c文件

//

//  main.c

//  IOS150605

//

//  Created byPeng Junlong on 15/6/5.

//  Copyright (c) 2015 Peng Junlong. All rights reserved.

//


#include <stdio.h>

#include <ctype.h>


//*****************************

//*                           *

//*         字符串             *

//*                           *

//*****************************


//字符串操作


//int     isalnum(int);

//int     isalpha(int);

//int     isblank(int);

//int     iscntrl(int);

//int     isdigit(int);

//int     isgraph(int);

//int     islower(int);

//int     isspace(int);

//int     isupper(int);

//int     isxdigit(int);

//int     tolower(int);

//int     toupper(int);

//int     isascii(int);

//int     toascii(int);

//int     _tolower(int);

//int     _toupper(int);

//int     digittoint(int);

//int     ishexnumber(int); //等同于isxdigit

//int     isnumber(int);    //等同于isdigit


//int main(int argc, const char * argv[]) {

//    

//    printf("isalnum = %d\n",isalnum('a'));//判断是否是字母或者数字字符

//    printf("isalnum = %d\n",isalnum(' '));

//    

//    printf("isalpha = %d\n",isalpha('a'));//判断是否为英文字母字符

//    printf("isalpha = %d\n",isalpha('0'));

//    

//    printf("isdigit = %d\n",isdigit('0'));//判断是否为十进制数字字符

//    printf("isdigit = %d\n",isdigit('a'));

//    

//    printf("isgraph = %d\n",isgraph('a'));//判断是否为可见字符

//    printf("isgraph = %d\n",isgraph(' '));

//    

//    printf("islower = %d\n",islower('a'));//判断是否为小写字母

//    printf("islower = %d\n",islower('A'));

//    

//    printf("isupper = %d\n",isupper('A'));//判断是否为大写字母

//    printf("isupper = %d\n",isupper('a'));

//    

//    printf("isxdigit = %d\n",isxdigit('a'));//判断是否为16进制字符

//    printf("isxdigit = %d\n",isxdigit('g'));

//    

//    printf("tolower = %c\n",tolower('A'));//将大写字母转换成小写字母

//    printf("toupper = %c\n",toupper('a'));//将小写字母转换成大写字母

//    

//    printf("digittoint = %d\n",digittoint('e'));//把十六进制字符转换成整型数据

//    

//    printf("isspace = %d\n",isspace(' '));

//    printf("isblank = %d\n",isblank(' '));

//    return 0;

//}


//字符串

//"Hello China"

//1.字符串中的每一个字符占一个字节

//2.字符串必须用""包含

//3.字符串的末尾必须要有'\0'

//4.打印字符串用%s占位符,只需要传递字符串的首地址

//5.字符串可以用字符数组存储或者存储在堆内存中


//int main(int arg, const char *argv[])

//{

//    char str[] = "Hello China"; //  隐含包括一个'\0'字符;省略数组长度必须初始化数组

//    printf("size = %lu\n",sizeof(str));

//    

//    printf("%s\n",str);

//    return 0;

//}


//int main(int arg, const char *argv[])

//{

//    char str1[] = "Hello China";

//    char *str2  = "Hello China";

//    

//    str1[5] = 'A';

//    //*(str2 + 5) = 'A';//str2指针指向字符串常量,不能修改字符串常量

//    

//    printf("str1 = %s\n",str1);

//    printf("str2 = %s\n",str2);

//    

//    //str1 = "Hello World"; //  可以对字符指针变量赋值,但不能对数组名赋值

//    str2 = "Hello World";

//    printf("str1 = %s\n",str1);

//    printf("str2 = %s\n",str2);

//}


//字符串长度(字符串的有效长度,有效长度不包含'\0')

#include <string.h>


//unsigned long --> size_t

//size_t strlen(const char *);

//int main(int arg, const char *argv[])

//{

//    char str[] = "Hello China";

//    

//    printf("size = %lu\n",sizeof(str));//字符串在内存中占用的大小

//    printf("length = %lu\n",strlen(str));

//    

//    return 0;

//}



//字符串拷贝

//char*strcpy(char *dest, const char *src);   //src的字符复制到dest,返回dest的地址;dest指针指向的内存空间足够容纳src字符串

//char*strncpy(char *, const char *, size_t); //dest:目的缓冲区,src:源字符串,n:最多拷贝的字符个数


//char *my_strcpy(char *dest, const char *src)

//{

//    int i=0;

//    while (src[i] != '\0') {

//        *(dest+i) = src[i];

//        i++;

//    }

//    *(dest+i) = '\0';

//    return dest;

//}

//

//int main(int arg, const char *argv[])

//{

//    char *str1 = "Hello China";

//    char str2[100] = {};

//    

//    strncpy(str2, str1, 2);

//    printf("str2 = %s\n",str2);

//    

//    //printf("str2 = %s\n",my_strcpy(str2,str1));

//    

//    //strcpy(str2, str1);

//    //printf("str2 = %s\n",str2);

//    

//    return 0;

//}


//字符查找函数

//char*strchr(const char *, int); //正序查找字符,返回字符在源字符串第一次出现的位置(地址)

//char*strrchr(const char *, int); //倒序查找字符,返回字符在源字符串第一次出现的位置(地址)


//char *my_strchr(const char *src,int index)

//{

//    int i =0;

//    while (src[i] != '\0') {

//        if (src[i] == index) {

//            return (char *)(src+i);

//        }

//        else

//        {

//            i++;

//        }

//    }

//    

//    

//    return NULL;

//}

//

//int main(int arg, const char *argv[])

//{

//    char *str = "Hello World";

//    

//    printf("%s\n",my_strchr(str, 'k'));

//    printf("%s\n",strchr(str, 'o'));

//    printf("%s\n",strrchr(str, 'o'));

//    return 0;

//}


//字符串比较

//int strcmp(const char *, const char *);

//int strncmp(const char *, const char *, size_t);


//int my_strcmp(const char *str1, const char *str2)

//{

//    int i=0;

//    while (str1[i] && str2[i] && *(str1+i) == *(str2+i)) {  //若一个结束,另一个还有,'\0'

//        i++;

//    }

//    return str1[i] - str2[i];

//}

//int main(int arg, const char *argv[])

//{

//    char *str1 = "Hello World";

//    char *str2 = "Hello Sorldas";

//    

//    printf("%d\n",my_strcmp(str1, str2));

//    

//    printf("%d\n",strcmp(str1, str2));  //从左到右逐个比较两个字符串字符的大小,str1中的字符减去str2中的字符,

//                                        //返回两个字符的差,只要有一个不同后面的就不再比较

//    

//    printf("%d\n",strncmp(str1, str2,7));//比较两个字符串的前n个字符

//    

//    return 0;

//}


//字符串拼接函数

//char*strcat(char *dest, const char *src);

//char*strncat(char *dest, const char *src, size_t n);//n:是最多往dest里拼接的字符个数


//char *my_strcat(char *dest, const char *src)

//{

//    int i = 0;

//    int j = 0;

//    while (dest[i] != '\0') {

//        i++;

//    }

//    while (src[j] != '\0') {

//        dest[i] = src[j];

//        i++;

//        j++;

//    }

//    dest[i] = src[j];

//    

//    return dest;

//}

//

//int main(int arg, const char *argv[])

//{

//    char str1[100] = "HelloWorld";

//    char str2[]    = "Peng";

//    //printf("str = %s\n",my_strcat(str1, str2));

//    //printf("str = %s\n",str1);

//    printf("str = %s\n",strncat(str1, str2,10));

//    

//    

//    return 0;

//}


//字符串分割函数

//char*strtok(char *src, const char *delim);

//src:被分割的字符串

//delim:分隔符字符串.一定要用双引号包含


//int main(int arg, const char *argv[])

//{

//    char str[100] = "Hello world* peng #:Junlong";

//    

//    char *pstr = strtok(str, " ");

//    printf("pstr = %s\n",pstr); //  结果:pstr = Hello

//    

//    pstr = strtok(NULL, "* ");

//    printf("pstr = %s\n",pstr);//结果:pstr = world    ,底层有一个指针记录了w的位置

//    for (int i=0; i<100; i++) {

//        printf("%c",str[i]);

//    }

//    printf("\n");

//    pstr = strtok(NULL, " #:");

//    printf("pstr = %s\n",pstr);

//    pstr = strtok(NULL, " #:");

//    printf("pstr = %s\n",pstr);//最后不能分割时返回的时NULL

//    pstr = strtok(NULL, " #:");

//    printf("pstr = %s\n",pstr);//最后不能分割时返回的时NULL

//    

////    char *pstr = str;

////    

////    while ((pstr = strtok(pstr, "* #:"))) {

////        printf("%s\n",pstr);

////        pstr = NULL;

////    }

//    

//    return 0;

//}


//查找子字符串函数

//char*strstr(const char *, const char *);


//int main(int arg, const char *argv[])

//{

//    char *src = "Hello WorldPengJunlong";

//    printf("str = %s\n",strstr(src, "World"));

//    printf("str = %s\n",src);

//    return 0;

//}


//输入两个字符串,以第二个字符串整体作为分割条件把第一个字符串进行分割,然后输出分割之后的单词。

//比如:

//输入:

//Hi#@wel@come#@to#@qian#feng

//#@

//输出:

//Hi

//wel@come

//to

//qian#feng


//char *my_strstr(const char *src, const char *sub)

//{

//    char *pstr = src;

//    int len = (int)strlen(src);

//    int sublen = (int)strlen(sub);

//    int j=0;

//    for (int i=0; i<len; i++) {

//        for (int j=0; j<sublen; j++) {

//            

//        }

//        if (src[i] == sub[j]) {

//            pstr = src+i;

//        }

//    }

//    while (src[i]) {

//        <#statements#>

//    }

//}


//int main(int arg, const char *argv[])

//{

//    char str[100] = {};//"Hi#@wel@come#@to#@qian#feng";

//    char substr[20] = {};

//    gets(str);

//    gets(substr);

//    char *pstr1 = str;

//    char *pstr2 = str;

//    int len = (int)strlen(substr);

//    while ((pstr1 = strstr(pstr1, substr))) {

//        *pstr1 = '\0';

//        printf("%s\n",pstr2);

//        pstr1 += len;

//        pstr2 = pstr1;

//    }

//    if (*pstr2) {

//        printf("%s\n",pstr2);

//    }

//    return 0;

//}


//sscanf  sprintf

//int sprintf(char * __restrict, const char * __restrict, ...)

//格式化往字符缓冲区写入字符串


//int sscanf(const char * __restrict, const char * __restrict, ...)



//int main(int arg, const char *argv[])

//{

//    char buf[100] = {};

//    int a = 100;

//    float f = 3.14;

//    int ret;

//    ret = sprintf(buf, "this int number is %d,and float number is %.2f\n",a,f);

//    

//    printf("buf = %s\n",buf);

//    printf("length = %d\n",ret);

//    

//    

//    char *src = "#234$4.22fs*";

//    int b;

//    float f1;

//    float f2;

//    ret = sscanf(src, "#%d$%ffs*",&b,&f1);//"#%d$%ffs*"格式对src进行解析,成功解析赋值几个就返回几

//    

//    printf("b = %d,f1 = %f\n",b,f1);

//    printf("length = %d\n",ret);

//    

//    ret = sscanf(src, "#%d$%ffs%f*",&b,&f1,&f2);

//    printf("b = %d,f1 = %f,f2 = %f\n",b,f1,f2);

//    printf("length = %d\n",ret);

//    return 0;

//}



//

//  MemoryManage.c

//  IOS150605

//

//  Created byPeng Junlong on 15/6/5.

//  Copyright (c) 2015 Peng Junlong. All rights reserved.

//


MemoryManage.c文件


//*****************************

//*                           *

//*         内存管理           *

//*                           *

//*****************************


#include <stdio.h>

//内存管理  :内存地址从低到高如下:

//.text:存储二进制可执行程序

//.data:初始化的全局变量及初始化的static关键字修饰的变量,分为只读数据段及可读可写数据段,只读数据段存储常量,:"hello"

//.bss:未初始化的全局变量及未初始化的static修饰的变量

//.heap:堆内存,手动申请,手动释放(使用mallocfree)

//.stack:栈内存,存储局部变量



//static 关键字    ---static关键字和extern关键字不能同时修饰一个变量

//1.修饰局部变量,全局变量的生命周期,局部变量的作用域

//2.修饰全局变量,全局变量只能在当前定义的文件中可以访问

//3.修饰函数,函数只能在定义的文件中使用,其他外部文件不可以调用


void print_num(void)

{

    static int num = 100;   //只有该函数第一次被调用的时候才会定义num;

    for (int i=0; i<5; i++) {

        printf("num = %d\n",num++);

    }

}


//修饰函数

static void print_Hell0()

{

    printf("Hello Peng\n");

}


int main(int argc, const char *argv[])

{

    print_num();

    print_num();

    print_Hell0();

    

    return 0;

}


0 0
原创粉丝点击