引用一個數(shù)組元素的方法
以下是程序
main()
{
int i;
int a[10];
int *p=a;
for(i=0;i<10:i++)
????{
????*p=i+1;
printf("a[%d]=%d\n",i,*p);
p++;
????}
}
?*p=i+1; 我理解是把i+1賦值給數(shù)組a,但不能理解作用是什么。想問這一語句大家怎么理解?作用和含義是什么?
以下是程序
main()
{
int i;
int a[10];
int *p=a;
for(i=0;i<10:i++)
????{
????*p=i+1;
printf("a[%d]=%d\n",i,*p);
p++;
????}
}
?*p=i+1; 我理解是把i+1賦值給數(shù)組a,但不能理解作用是什么。想問這一語句大家怎么理解?作用和含義是什么?
2016-08-15
舉報
2016-08-19
謝謝解答,現(xiàn)已弄明白了
2016-08-16
提問: *p=i+1; 我理解是把i+1賦值給數(shù)組a,但不能理解作用是什么。想問這一語句大家怎么理解?作用和含義是什么?
回答:
首先理解符號的意思,*p有一層隱喻含義,暗示p的類型并不是普通變量,而是“內(nèi)存地址”類型(內(nèi)存地址類型的存儲在32位機器中占4個字節(jié),64位機器占8個字節(jié)),所以p是地址(比如0x7fffffffdde0),而*p代表到0x7fffffffdde0這個內(nèi)存地址去取這個地址上存的值。
現(xiàn)在把i+1(假設(shè)i=4,那么i+1=5)的值5,保存到地址p(0x7fffffffdde0)上,也就意味著以后去p這個地址讀取變量值得話,就會讀到5。