char *,char str[n], char **, char *argv[], char (*argv)區別。
阿新 • • 發佈:2018-10-15
%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)區別。