码迷,mamicode.com
首页 > 其他好文 > 详细

char *,char str[n], char **, char *argv[], char (*argv)区别。

时间:2018-10-15 12:18:37      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:字符串   div   速度   end   可变   栈内存   编译   ring   个数   

#include <stdio.h>
#include <string.h>

int main()
{
/*------------------------------------------------*/
#if 0
    char *str = "abcd";  
        //在栈内存中定义一个char *型的变量,内容为字符串“abcd”的首地址,
        //但是字符串“abcd”的内容存在于常量区,内容不可变,
        //在编译的时候就已经确定内容。运行速度慢。

    *str = c;        //错误,常量区内容不可变。
    printf("%s\n", str);
    char st[20] = "abcd";
        //在栈中定义一个char型数组,大小为20个char字节,
        //abcd存在于这个数组中,可以通过指针去改变其中的内容。
        //在运行的时候确定的内容。运行速度快。
    *(st+1) = c;
    printf("%s\n", st);
#endif
/*-------------------------------------------------*/
#if 0
    char *str = "abcd";
    char **argv = &str;
    printf("%p %s %c\n", argv, *argv, **argv);
#endif
#if 1
    
    char *argv[3] = {"abcd","efgh","hig"};
    printf("%p  %p  %p\n",&argv[0], &argv[1], &argv[2]);

    int  arg[3][2] = {1,2,3,4,5,6};
    int (*arc)[2] = arg;
#endif

    return 0;
}          

 

char *,char str[n], char **, char *argv[], char (*argv)区别。

标签:字符串   div   速度   end   可变   栈内存   编译   ring   个数   

原文地址:https://www.cnblogs.com/sunpengxx/p/9789151.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!