char *,char str[n], char **, char *argv[], char (*argv)区别。
Posted sunpengxx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了char *,char str[n], char **, char *argv[], char (*argv)区别。相关的知识,希望对你有一定的参考价值。
#include <stdio.h> #include <string.h> int main() { /*------------------------------------------------*/ #if 0 char *str = "abcd"; //在栈内存中定义一个char *型的变量,内容为字符串“abcd”的首地址, //但是字符串“abcd”的内容存在于常量区,内容不可变, //在编译的时候就已经确定内容。运行速度慢。 *str = ‘c‘; //错误,常量区内容不可变。 printf("%s ", str); char st[20] = "abcd"; //在栈中定义一个char型数组,大小为20个char字节, //abcd存在于这个数组中,可以通过指针去改变其中的内容。 //在运行的时候确定的内容。运行速度快。 *(st+1) = ‘c‘; printf("%s ", st); #endif /*-------------------------------------------------*/ #if 0 char *str = "abcd"; char **argv = &str; printf("%p %s %c ", argv, *argv, **argv); #endif #if 1 char *argv[3] = {"abcd","efgh","hig"}; printf("%p %p %p ",&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)区别。的主要内容,如果未能解决你的问题,请参考以下文章
string,const char*, char*转换之后还是指向同一片内存地址么?
C语言实现整数转换为字符串的函数,函数原型为void myitoa(int num,char *str)
利用char, str2mat, strvcat创建多行字符串数组
编写函数int count_number_string(char str[])和函数int maxnum_string(char str[])