[英]Can a value be directly assigned to a pointer?
我在以下代碼中無法理解對string2的賦值:
#include <stdio.h>
void copy1( char * const s1, const char * const s2 ); /* prototype */
void copy2( char *s1, const char *s2 ); /* prototype */
int main( void )
{
char string1[ 10 ]; /* create array string1 */
char *string2 = "Hello"; /* create a pointer to a string */
char string3[ 10 ]; /* create array string3 */
char string4[] = "Good Bye"; /* create a pointer to a string */
我認為指針只能初始化為NULL,0或地址。 您可以直接將值分配給char *數據類型嗎?
好吧,可以將一個指針變量分配為NULL
(定義為0),一個變量的地址或另一個指針的值。 字符串文字的類型為char[]
,並且普通數組類型可以衰減為指針,因此您可以將字符串文字分配給string2
和string4
。 與調用print("Good Bye");
您要將經過衰減的char*
傳遞給printf 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.