本文目錄一覽:
C語言 指針方法?
#includestdio.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;i3;i++)//冒泡排序
for(int j=0;j3-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;i3;i++)
printf(“%d “,s[i]);
return 0;
}
——————————————————————————
#includestdio.h
void input(int *a)
{
int *p=a;//將數組a的首地址賦給指針p
for(int i=0;i10;i++)
scanf(“%d”,p[i]);//指針下標法輸入
}
int max_min(int *a)
{
int *p=a;//將數組a的首地址賦給指針p
int max,min,x=0,y=0,t;
max=min=p[0];
for(int i=0;i10;i++)
{
if(p[i]=max)
{
max=p[i];
x=i;
}
if(p[i]=min)
{
min=p[i];
y=i;
}
}
t=p[y];
p[y]=p[0];
p[0]=t;
t=p[9];
p[9]=p[x];
p[x]=t;
}
void output(int *a)
{
int *p=a;//將數組a的首地址賦給指針p
for(int i=0;i10;i++)
printf(“%d “,p[i]);//指針下標法輸出
}
int main()
{
int a[11];
input(a);//調用函數,下同
max_min(a);
output(a);
return 0;
}
C語言指針怎麼用?
在c語言中.指針被用來表示內存單元的地址,如果把這個地址用一個變量來保存,則
這種變量就稱為指針變量。指針變量也分別有不同的類型,用來保存不同類型變量的地址。
嚴格地說.指針與指針變量是不同的,為了敘述方便,常常把指針變量就稱為指針。
內存是計算機用於存儲數據的存儲器,以字節作為存儲單元.為了能正確的訪問內存單
元,必須為每一個內存單元編號,這個編號就稱為該單元的地址。如果將一個旅店比喻成內
存,則旅店的房間就是內存單元,房間號碼就是該單元的地址。
指針變量定義格式:
[存儲類型]
數據類型
*指針變量名[=初始值]
指針變量一旦定義,必須採用賦值的方式將其與某個變量實體相聯繫,才能使用。指針
變量的賦值方式:
指針變量名;&普通變量名;
c語言指針用法?
1、使用場景
使用指針時,必須將它指向一個變量的地址或者為它分配空間方能使用,如下所示:
#includestdio.h
#include stdlib.h
int main(int argc, char const *argv[])
{
int a[5]={0,1,2,3,4};
int *b,*d;
int c=2;
int *e=a; //e指向a數組首地址
//*b=2; 無法直接初始化
//printf(“%d\n”, *b);
e=e+2; //移動兩個地址單元
d=c; //d指向c的地址來表示值
c=4; //修改原c變量的值,d指針的值會發生改變
b=(int *)malloc(sizeof(int));//為b分配一個int型空間來直接存儲值
*b=2;//分配空間後可以直接賦值了
printf(“this is e,b,c,d :%d %d %d %d\n”,*e,*b,c,*d);
2、類型說明
(1)int *a :表示一個指向int型變量的指針,指向的是變量的地址單元
(2)char *b:表示一個指向char變量的指針
*a表示的是這個指針指向地址的值,a為此指針本身的地址,這點要明確,一般用*(a+1)、*(a+2)來表示值,如:
int nums[5]={0,1,2,3,4};
int *a=nums;
printf(“%d %d %p\n”,*a,*(a+1),a);
擴展資料:
指針的運算
指針指向變量地址,若原變量的內容發生了變化,它本身也會發生變化,指針之間的運算一般為值運算和地址運算
(1)值運算:直接通過*運算方式,像a+*(a+1),結果為第一個元素與第二個元素相加。
int nums[5]={0,1,2,3,4};
int *a=nums;
(2)地址運算:通過a+i的方式.指針會指向a的下i個地址。
int nums[5]={0,1,2,3,4};
int *a=nums;
a=a+2;
printf(“%d\n”,*a);
結果輸出2。
參考資料來源 :指針-百度百科
C語言指針的用法
1、指針的概念
指針是一個特殊的變量,它裡面存儲的數值被解釋成為內存里的一個地址。要搞清一個指針需要搞清指針的四方面的內容:指針的類型,指針所指向的類型,指針的值或者叫指針所指向的內存區,還有指針本身所佔據的內存區。讓我們分別說明。
先聲明幾個指針放着做例子:
例一:
(1)int*ptr;
(2)char*ptr;
(3)int**ptr;
(4)int(*ptr)[3];
(5)int*(*ptr)[4];
1、指針的類型
從語法的角度看,你只要把指針聲明語句里的指針名字去掉,剩下的部分就是這個指針的類型。這是指針本身所具有的類型。讓我們看看例一中各個指針的類型:
(1)int*ptr;
//指針的類型是int*
(2)char*ptr;
//指針的類型是char*
(3)int**ptr;
//指針的類型是int**
(4)int(*ptr)[3];
//指針的類型是int(*)[3]
(5)int*(*ptr)[4];
//指針的類型是int*(*)[4]
怎麼樣?找出指針的類型的方法是不是很簡單?
2、指針所指向的類型
當你通過指針來訪問指針所指向的內存區時,指針所指向的類型決定了編譯器將把那片內存區里的內容當做什麼來看待。
從語法上看,你只須把指針聲明語句中的指針名字和名字左邊的指針聲明符*去掉,剩下的就是指針所指向的類型。例如:
(1)int*ptr;
//指針所指向的類型是int
(2)char*ptr;
//指針所指向的的類型是char
(3)int**ptr;
//指針所指向的的類型是int*
(4)int(*ptr)[3];
//指針所指向的的類型是int()[3]
(5)int*(*ptr)[4];
//指針所指向的的類型是int*()[4]
在指針的算術運算中,指針所指向的類型有很大的作用。指針的類型(即指針本身的類型)和指針所指向的類型是兩個概念。當你對C越來越熟悉時,你會發現,把與指針攪和在一起的”類型”這個概念分成”指針的類型”和”指針所指向的類型”兩個概念,是精通指針的關鍵點之一。
本篇文章來源於 黑基網-中國最大的網絡安全站點 原文鏈接:
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/189062.html