『壹』 c語言求助
你已經說了啊**k是指向指針的指針,即k是一個2級指針啊,舉個例子吧,你想問路,你問了張三,張三說他不知道,但是李四知道,然後你通過張三找到了李四,然後李四告訴了你你想去的地方在哪裡,這里張三就是k,李四就是p,k=&p,表示了k的值是p變數的地址
『貳』 c語言地址問題
首先,寫兩個程序,同一個編譯器運行的時候,編譯器不會允許不同變數,地址相同的,會提示地址佔用的,如果是一個程序中兩個變數一個地址的話,那就看當前地址的值了;
其次,變數地址相同,存的數不一樣的時候,以最後一次存的數為准,前面的數被覆蓋了。
希望我能幫到你
『叄』 c語言 地址問題
你要得到ELEM的地址,自然需要&,因為&是取地址命令啊~
『肆』 c語言求地址操作問題
str[i]和string[k+1]都是地址,因此地址賦值不需要地址符,直接賦值即可:
str[i]=string[k+1];
『伍』 C語言 求助
(1)為什麼第一個是44?
主函數在定義變數的時候,把指針a指向整型變數x在內存存放地址,指針b指向整型變數y在內存存放地址,然後調用子函數fun(),在調用時由於傳遞的是形參,子程序會給傳過來的參數重新分配內存,調用結束後分配的內存釋放。在子函數中,b賦值給a,也就是把a也指向y的內存地址,a和b都指向y的內存地址,當然列印出來就是44了。
(2)為什麼第二個是34?
由於主函數和子函數的a和b是不同的,返回後主函數的a和b的值並未發生任何改變,因此指針a還指向整型變數x在內存存放地址,指針b還指向整型變數y在內存存放地址,因此列印出來就是34.
(3)如果想讓子函數修改a和b的值怎麼辦?
那就可以定義全局變數a和b,就是在主函數之上加上int *a,*b。把程序修改如下:
int *a,*b;
void fun(int *,int *)
{a=b;printf("%d%d",*a,*b);
}
int main()
{
int x=3,y=4;
a=&x,b=&y;
fun(a,b);
printf("%d%d",*a,*b);
return 0;
}
運行後就是你認為的那個結果。
『陸』 C語言字元串地址引用問題,求助!
改成data[len1]-'0'
『柒』 c語言求助!知道數組首地址怎麼求出數組元素地址
單維數組名就是首地址,多維數組名就是第1維的首地址,因此取首地址,可以把數組名賦給對應的指針變數,或取索引為0的首個元素地址賦給對應的指針變數。舉例:
單維
int
arr[10];
int
*
p
=arr;
或
int
*
p
=&arr[0];
二維
int
arr[10][10];
int
(*p)[10]
=arr;
或int
(*p)[10]
=
&arr[0];//
取第一維地址
int
arr[10][10];
int
*
p=
&
arr[0][0];
//
取多維中的首個元素
『捌』 c語言 求助 二維數組 每行的首地址
你的理解是對的!
比如a[2][3]=[1,2,3,4,5,6],那麼*a[1]=4,*(a[1]+2)=6
『玖』 C語言數組地址問題
解釋如下:
&a,*a,a,a[0]——都表示的是數組第0行第0個元素的地址;
*a[0]——這個特殊,表示第0行第0個元素的地址的地址;
a[2],&a[2]——都表示第2行第0個元素的地址;
&a[2][2]——表示第2行第2個元素的地址;
詳見圖片,我已經把數組中主要元素的地址和值都列印出來了,數組中對應的每個元素的地址寫出來了,對照的找下對應元素的位置,應該能理解&a,*a,a,a[0],*a[0],a[2],&a[2],&a[2][2]是什麼意思了
#include<stdio.h>
#include<stdlib.h>
intmain()
{
inta[3][4]={
{1,2,3,4},
{5,6,7,8},
{9,10,11,12},
};
printf("&a十六進制地址是%p,十進制是%d
",&a,&a);//數組名,a[3][4]
printf("*a十六進制地址是%p,十進制是%d
",*a,*a);
printf("a十六進制地址是%p,十進制是%d
",a,a);
printf("a[0]十六進制地址是%p,十進制是%d
",a[0],a[0]);
printf("*a[0]十六進制地址是%p,十進制是%d
",*a[0],*a[0]);
printf("a[2]十六進制地址是%p,十進制是%d
",a[2],a[2]);
printf("&a[2]十六進制地址是%p,十進制是%d
",&a[2],&a[2]);
printf("&a[2][2]十六進制地址是%p,十進制是%d
",&a[2][2],&a[2][2]);
printf("數組a[3][4]首元素a[0][0]的地址是%p,首元素a[0][0]的值=:%d
",&a[0][0],a[0][0]);
printf("數組a[3][4]首元素a[2][0]的地址是%p,首元素a[2][0]的值=:%d
",&a[2][0],a[2][0]);
printf("數組a[3][4]首元素a[2][2]的地址是%p,首元素a[2][2]的值=:%d
",&a[2][2],a[2][2]);
printf("一個int整型變數占的位元組是:%d",sizeof(int));
return0;
}
『拾』 C語言輸出地址問題
首先,printf("i的地址為:%p",i);不是輸出地址,而是輸出i的值,但是會以16進制輸出。
如果輸出i地址,應該是 printf("i的地址為:%p",&i);
而%d就是以十進制輸出i的值