當前位置:首頁 » 編程語言 » c語言怎麼給指針
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言怎麼給指針

發布時間: 2023-04-28 12:46:37

1. c語言 指針如何賦值

1、變數的指針就是變數的地址。存放變數地址的變數是指針變數。即在C語言中,允許用一個變數來存放指針,這種變數稱為指針變數。因此,一個指針變數的值就是某個變數的地址或稱為某變數的指針。

2. 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;

}

3. c語言如何給指針參數賦值為null

用指針的引用即可.
例如:
int
memnull(int
*¶m)
{
param
=
NULL;
return
0;
}
在另一個函數里調用它:
int
*a;
memnull(a);
memnull運行完之後a的地址就被修改為NULL了.
或者可以用指針的指針:
int
memalloc(int
**param)
{
*param
=
NULL;
return
0;
}
調用的時候這樣調用:
int
*a;
memnull(&a);
這樣memnull函數運行完後a的地址也會被修改為NULL.
同理其他操作,申請空間,改變指向等,也可以用指針的引用和指針的指針這兩種方法完成.不過還是推薦指針的引用,在寫代碼時不容易寫錯.

4. C語言怎麼將變數裡面的值賦給指針

p=r1;就可以了

如果要讓p指向r1就p=&r1;

指針的寬度win32下是4位 dos下2位
也就是sizeof(p)=sizeof(int);

5. c語言指針用法有哪些 如何應用

在下文中,我將會告訴大家c語言的指針都有哪些用法。

c語言指針用法

int t 定義整薯尺型變數

int *p:p為指向整型數據的指針變數。

int a[n]:定義整型數組a,它有n個元素。

int *p[n]:定義指針數組p,它由n個指向整形數據的指針元素組成。

int (*p)[n]:p為指向含n個元素的一維數組的指針變數。

int f():f為返回整型函數值的函數。

int *f():p為返回一個指針的函數,該指針指向整型數據。

int (*f)():p為指向函數的指針,該函數返回一個整形值。

int **p:p是一個指針變數,它指向一個指向整形數據的指針變數。

c語言的應用

驅動程序,無論是操作系統或者單片機,對硬體的驅動除了匯編(比較繁瑣),都是用C語言來編寫。

系統服務,由於操作系統都提供了C語言的API,並且C語言的執行效率比較高,所以用C語言來寫系統服務是最適合不過的。

應用軟體,由於C語言沒有成熟的開發框架,所以不適合開發大型應用程序。但也有一些對效率要求比較高的程序使用C語言開發,如Git。

應用范圍廣泛,具備很強的數據處理能力,不僅僅是在軟體開發上,而且各類科研都需要用到C語言,適於編寫系統軟體,三維,二維圖形和動畫。具體應用比如單片機以及嵌入式系統開發。

C語言是面向過程語言,C語言通過windows平台下編譯的,是直接運行在windows平台下的,而Java始終此旦是運行森手擾在他的虛擬機之上的;所以理論上C語言能做一些相對於比較底層的工作,像Java就不能編寫Windows病毒。

6. C語言的指針怎麼用啊

在你提供的代碼上進行了增加,我感覺你們老師可能是想讓你們把指針用在數組上吧,對於一個指向數組的指針p,p++指向數組的下一個元素。此外,使用指針可以很好的提升代碼執行效率。有問題可以互相交流。
#include <stdio.h>
#include <stdlib.h>

int square(int a, int b)
{
return a*b;
}

int main()
{
int i, j, l, w, s = 0, number = 1, max;

int *length = &l, *width = &w, *p = &i;

printf("請輸入您所需測量田地的數量: \n");

scanf("%d",p);

int a[*p];
int *y = a;

for(j = 0; j < *p; j++)
{
printf("請輸入第%d塊田的長和寬: \n", j+1);
scanf("%d %d",length,width);
*(y+j) = square(*length, *width);
s = s + *(y+j);
max = *y;

if( *(y+j) > max)
{
max = *(y+j) ;
number = j+1;
}
}

for(j = 0; j < *p; j++)
{
printf("您第%d塊田的面積為%d:\n",j+1,*(y+j));
}

printf("您的田地總面積為: %d \n", s);
printf("您最大面積一塊第為第%d塊,面積為%d !!!", number, max);
return 0;
}

7. c語言怎麼樣把指針的值賦值給另一個指針

1. C語言 怎麼把指針的值 賦給另一個數組
循環賦值, 或者直接strcpy。 因為這里是字元串。

比如

#include<stdio.h>

int main()

{

int i=0;

char a[100];

scanf("%s",a);

fun(&a);

return 0;

}

int fun(int *p)

{

int i,b,c,d;

char j[100];

strcpy(j, p);

用memcpy也可以。

memcpy(j, p, sizeof(j));

我想在這之後 讓j【100】接收到上面那個數組的值 並輸出我應該怎麼寫用指針!

return 0;

}
2. C語言 怎麼把指針的值 賦給另一個數組
循環賦值, 或者直接strcpy。

因為這里是字元串。 比如 #include int main(){int i=0;char a[100];scanf("%s",a);fun(&a);return 0;}int fun(int *p){int i,b,c,d;char j[100];strcpy(j, p);用memcpy也可以。

memcpy(j, p, sizeof(j));我想在這之後 讓j【100】接收到上面那個數組的值 並輸出我應該怎麼寫用指針!return 0;}。
3. C++如何將一個指針的值賦值給另一個指針,並且兩個指針不共用一個
首先指針全名叫

所以他本身是變數,既然是變數就要有值,而他的值就是指針指向的地址(在32位系統下是一個無符號的32位整數),

所以可以這么說任何兩個指針都不共用一個地址,但是可以指向同一個毀橘型地址!

像這樣

int nNum = 10;

int* p1 = &nNum;伍消

int* p2 = &nNum;纖猜

p1和p2指向的地址相同,但是p1和p2的地址卻是不同的

如果我理解的沒錯的話你想說的是兩個指針指向同一個地址,但是這是不可能的!

既然是指針值賦值給另一個指針,那麼一定是指向同一地址的,

算了,看到*c=*d;的寫法我哭了!

8. c語言如何給結構體指針賦值

結構體數組指針作為函數參數,通過數組的首地址與偏移量對結構體數組進行scanf的賦值,在函數中通過指針間接訪問到其指向的內存。

舉例:編寫函數,輸入5個學號(int),5個姓名(字元串),5個成績數組(每組三個成績)(int[3]),依次調用函數

#include <stdio.h>

#include <stdlib.h>

struct student //建立結構體,學號,姓名,3門課的分數

{

int num;

char name[10];

int score[3];

}Stu[5]; //初始化,一共5個學生的數據

void getScore(struct student * p) //函數:向結構體讀取分數,一共三門課

{

int i, j;

for (i = 0; i < 5; i++)

for (j = 0; j < 3; j++)

scanf_s("%d", (&(p+i)->score[j]));

}

void getNum(struct student * p) //函數:向結構體讀取學號

{

int i;

for (i = 0; i < 5;i++)

scanf_s("%d", &(p + i)->num);

}

void getName(struct student * p) //函數:向結構體讀取姓名

{

int i;

for (i = 0; i < 5; i++)

scanf("%s", &(p + i)->name);

}

int main()

{

int i, j, average[3] = { 0 }; //average數組儲存每門課的平均分

getNum(Stu); //函數調用

getName(Stu);

getScore(Stu);

for (j = 0; j < 3; j++)

{

for (i = 0; i < 5; i++)

average[j] += Stu[i].score[j];

}

for (i = 0; i < 5; i++)

{

printf("num = %d name = %s Score:", Stu[i].num, Stu[i].name); //依次列印學號 姓名

//printf("%d %d %d", Stu[0].score[0],Stu[0].score[1],Stu[0].score[2]);

for (j = 0; j < 3; j++) //列印三門課的分數

printf(" %d", Stu[i].score[j]);

printf(" ");

}

printf("average:");

for (i = 0; i < 3; i++)

printf("%f ", (float)average[i]/5); //列印三門課平均分

printf(" ");

system("pause");

return 0;

}

如:

scanf("%c%c%c",&a,&b,&c);

輸入為:

d e f

則把'd'賦予a, ' '(空格)賦予b,'e'賦予c。因為%c 只要求讀入一個字元,後面不需要用空格作為兩個字元的間隔,因此把' '作為下一個字元送給b。

只有當輸入為:def(字元間無空格) 時,才能把'd'賦於a,'e'賦予b,'f'賦予c。

9. C語言指針怎麼用

在c語言中.指針被用來表示內存單元的地址,如果把這個地址用一個變數來保存,則
這種變數就稱為指針變數。指針變數也分別有不同的類型,用來保存不同類型變數的地址。
嚴格地說.指針與指針變數是不同的,為了敘述方便,常常把指針變數就稱為指針。
內存是計算機用於存儲數據的存儲器,以位元組作為存儲單元.為了能正確的訪問內存單
元,必須為每一個內存單元編號,這個編號就稱為該單元的地址。如果將一個旅店比喻成內
存,則旅店的房間就是內存單元,房間號碼就是該單元的地址。
指針變數定義格式:
[存儲類型]
數據類型
*指針變數名[=初始值]
指針變數一旦定義,必須採用賦值的方式將其與某個變數實體相聯系,才能使用。指針
變數的賦值方式:
指針變數名;&普通變數名;