c語言指針怎麼輸出
A. c語言 指針方法
#include<stdio.h>
int main()
{
int a,b,c,s[3],t;
int *x,*y,*z;//定義指針變數
x=&a;//將a的地址賦給指針x,下同
y=&b;
z=&c;
scanf("%d%d%d",x,y,z);
s[0]=*x;//將指針x所指向的變數值賦給數組s的第一個元素;依次類推
s[1]=*y;
s[2]=*z;
for(int i=0;i<3;i++)//冒泡排序
for(int j=0;j<3-i-1;j++)
if(s[j]<s[j+1])
{
t=s[j];
s[j]=s[j+1];
s[j+1]=t;
}
for(int i=0;i<3;i++)
printf("%d ",s[i]);
return 0;
}
B. c語言怎麼輸出指針地址
比如說一個int a,想要輸出a的地,對a 直接取地址就行&a
如果有一個int型的指針int* a,則a本身就是地址,而*a表示在該地址下存儲的內容
C. C語言 如何輸出指針所指向空間的大小
C語言無法輸出指針所指向的空間的大小!
一般,我們獲取一個變數所佔內存空間的方法為:sizeof(變數名或類型名),如:
int a;
int aa[10];
int *p=aa;
printf("sizeof(int)=%d\n", sizeof(int) ); //現在的機器一般為32位或64位機,int類型佔四個位元組,所以輸出4
printf("sizeof( a )=%d\n", sizeof(a) ); //輸出4
printf("sizeof( aa )=%d\n", sizeof(aa) ); //輸出4*10=40
printf("sizeof(p)=%d\n", sizeof(p) );//輸出4 ?見下面說明
printf("sizeof(int *)=%d\n", sizeof(int *) );//輸出4 ?見下面說明指針變數定義:用來存儲內存地址的變數。指針變數中存儲的是內存地址數據(一個整型數),而不是真正的數據,真正的數據是在地址中存放的。所以,指針變數實際上就是個整型變數,用sizeof命令去獲取任意類型的指針變數都會得到4。
指針變數存儲的是一個存儲空間的首地址,究竟這個空間有多大,可以存儲多少個數據,這是分配空間時所決定的。單獨看一個地址值,是看不出其空間大小的。如:
int
a;
int
aa[10];
int
*p
;
//定義一個指針變數
p=aa
;
//指向數組aa,aa的數據空間是40位元組,10個整數
p=&a;
//指向一個整型變數,它的存儲空間是4位元組,一個整數