簡體   English   中英

是否可以將值直接分配給指針?

[英]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[] ,並且普通數組類型可以衰減為指針,因此您可以將字符串文字分配給string2string4 與調用print("Good Bye"); 您要將經過衰減的char*傳遞給printf

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM