字串與陣列和指標

2021-08-01 02:07:00 字數 1707 閱讀 3123

我們可以通過下面方式來初始化乙個字串

char arr = "this is array";

char * pointer = "this is pointer";

1.陣列符號方式
for(i=0;i

<6;i++)

putchar(arr[i]);

putchar('\n');

for(i=0;i

<6;i++)

putchar(pointer[i]);

輸出如下

this i

this i

2.指標加法方式
for(i=0;i

<6;i++)

putchar(*(arr+i));

putchar('\n');

for(i=0;i

<6;i++)

putchar(*(pointer+i));

輸出如下

this i

this i

3.增量運算子

指標用增量運算子,陣列用for迴圈輸出每個char

while(*(pointer) != '\0')

putchar(*(pointer++));

輸出如下

this

is pointer

陣列修改資料方法如下

arr[5] = 'z';

printf("this is array");

printf(": chang to %ss \n","this is array");

printf("%s",arr);

輸出如下

this is

array: chang to this is

array

this zs array

指標修改的話,會存在問題,可能有些編譯器會直接編譯不通過

pointer[5] = 'z';

printf("this is pointer");

printf(": chang to %ss \n","this is pointer");

printf("%s",pointer);

如果編譯通過,可能會有如下輸出

this zs pointer: chang to this zs pointer

this zs pointer

這原因可能為,編譯器用相同位址來替代this is pointer。所以,我們printf("this is pointer");中的字串的指向位址也是pointer,所以我們對pointer的修改也會影響到最後的結果。

char arrs[3][20]=;

char * pointers[3]=;

printf("%s\n",arrs[1]);

printf("%s\n",pointers[1]);

輸出如下,指標陣列的3對應arrs[3][20]中的3

this

is arr2

this

is pointer2

指標陣列,陣列指標,字串與指標

在研究指標陣列與陣列指標的時候,遇到了這個困惑,後面解答。void test02 char c 4 char p2 4 指標陣列 for int j 0 j 4 j for int i 0 i 4 i 指標陣列是陣列,即乙個陣列中,每個元素都是指標 void test05 注意這一行和最後一行的區別...

字串陣列與指標

思維 於一道題 char str1 abc char str2 abc const char str3 abc const char str4 abc const char str5 abc const char str6 abc cout boolalpha str1 str2 endl 輸出什麼...

陣列 字串與指標

指標變數既可以指向變數,當然也可以指向陣列元素。就是把陣列元素的位址放入指標變數中。陣列元素的指標就是它的位址。用陣列名做函式引數時,實參和形參對應關係有四種。一是實參形參都用陣列名。二是實參形參都用指標變數。三是實參用指標變數,形參用陣列名。四是實參用陣列名,形參用指標變數。在c語言中,也有兩種方...