程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> struct-數組賦值和結構體中的數組賦值問題

struct-數組賦值和結構體中的數組賦值問題

編輯:編程綜合問答
數組賦值和結構體中的數組賦值問題
 typedef struct _Teacher{
  char name[20];
  int age;
}Teacher;
void main(){
    Teacher t1;
        t1.age=20;
        t1.name="abc";//報錯為什麼?

        char name[20]="abc";//不報錯

}

求大牛給個詳細的解釋,對於abc C++編譯器是如何處理的?是分配內存放在全局區,還是當做字面值

最佳回答:


首先,其實你是忘記了C++的基礎問題,C++裡面只要涉及char都不能直接通過“=”來賦值,因為C++裡面沒有提供這個功能。必須使用str開頭的函數。
只有後來的CString重載來“-,+,=”之後才可以怎麼方便的使用。CString str;str=“sasa";.
其次,t1.name="abc";//報錯為什麼?name[20]是一個20大小的內存空間,而”abc“是一個常量匿名字符串的地址,現在你應該明白了.
你把一個地址賦值給了數組,也就是說現在char[20]="0x51825182"之類的,get it !
最後,oyljerry 說的數組聲明時候的初始化 應該被采納!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved