1. 程式人生 > >char *,char str[n], char **, char *argv[], char (*argv)區別。

char *,char str[n], char **, char *argv[], char (*argv)區別。

%s urn include 存在 abc stdio.h class main 大小

#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)區別。