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