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语言中.指针被用来表示内存单元的地址,如果把这个地址用一个变量来保存,则
这种变量就称为指针变量。指针变量也分别有不同的类型,用来保存不同类型变量的地址。
严格地说.指针与指针变量是不同的,为了叙述方便,常常把指针变量就称为指针。
内存是计算机用于存储数据的存储器,以字节作为存储单元.为了能正确的访问内存单
元,必须为每一个内存单元编号,这个编号就称为该单元的地址。如果将一个旅店比喻成内
存,则旅店的房间就是内存单元,房间号码就是该单元的地址。
指针变量定义格式:
[存储类型]
数据类型
*指针变量名[=初始值]
指针变量一旦定义,必须采用赋值的方式将其与某个变量实体相联系,才能使用。指针
变量的赋值方式:
指针变量名;&普通变量名;