結構體可以通過結構體進行賦值,而陣列不可以,但是結構體中是可以包含陣列的,那么結構體賦值是不是包含了對結構體內的陣列進行賦值,既然這樣,為什么現在C還不允許通過陣列對陣列進行賦值,誰能將清楚原因?
uj5u.com熱心網友回復:
struct book{
char name[10];
char auther[10];
float value;
};
struct book math;
math=(stuck book){"studymath","john",45.3};
uj5u.com熱心網友回復:
能啊,用已定義陣列賦值給新數字uj5u.com熱心網友回復:
能啊,用已定義陣列賦值給新陣列uj5u.com熱心網友回復:
#include <stdio.h>
int main()
{
char a[]="abcdefg";
char b[10];
b=a;
printf("%s\n",b);
return 0;
}
上面的編譯就無法通過;
而下面的才能通過:
#include <stdio.h>
#include<string.h>
int main()
{
char a[]="abcdefg";
char b[10];
for (int i=0;i<strlen(a);i++)
b[i]=a[i];
printf("%s\n",b);
return 0;
}
uj5u.com熱心網友回復:
陣列變數,陣列名其實表示的是常量地址,所以b=a;相當于把a的地址賦值給b,但是實際上b的地址也是常量,所以不能賦值結構體 變數名難道不是表示常量地址嗎?不理解
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/204007.html
標籤:C語言
