字元陣列和字元指標用法的區別

2022-09-17 01:54:11 字數 671 閱讀 2727

字元指標 char *p,只可接收已知的字串字面量

字元陣列 char a[100],可接收已知或未知的字串。

原理:字元指標只能儲存乙個字元型別的位址,而字串字面量表示式的返回值是:首元素首位址,所以字元指標可以獲得該首位址,並且可以通過指標讀取該字串,但不能修改,因為字串字面量都儲存在唯讀記憶體區域內,不可修改。

char *p="

hello";

putchar(p);

//返回『h'

puts(p); //

返回整個字串「hello」

putchar(p[2]); //

返回』l'

p[2]='

w'; //

錯誤,不可修改

char *p1;

scanf("%s",p1); //錯誤p1沒有指定可以空間

char型陣列,是分配了相應空間的,所以可以讀取,寫入字串。

char a[10],b[5][10

];scanf("%s

",a);

for(int i=0;i<5;i++)

char c[10]="

hello

";

以上寫法對於字元陣列都是合法的。

字元陣列和字元指標的區別

在c語言中,對字串的操作主要有兩種方式,一是使用字元陣列,char str 二是使用字元指標。那麼二者有什麼區別呢?下面將分述二者的使用,最後進行比較。一 字元陣列 使用char str定義乙個字元陣列str,中括號內可以寫上數字表示陣列大小,也可以不寫。如果不寫數字,則必須為字元陣列提供初始值,以...

字元陣列和字元指標的區別分析

1.字元指標可以指向乙個字串。我們可以用字串常量對字元指標進行初始化。例如,有說明語句 char str this is a string.是對字元指標進行初始化。此時,字元指標指向的是乙個字串常量的首位址,即指向字串的首位址。這裡要注意字元指標與字元陣列之間的區別。例如,有說明語句 char st...

指標與陣列 字元指標,字串和字元陣列的區別

指標和陣列是不相等的,把乙個陣列名作為乙個引數傳遞給函式時陣列名就是指向第乙個元素的指標,在大多數表示式中 陣列名的值是指向第乙個元素的指標 有兩個例外,乙個是sizeof返回的是整個陣列 的位元組數,乙個是 操作符返回 的是乙個指向陣列的指標 但不代表 兩者等價。int a 3 int b 宣告乙...