问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c语言 指针如何赋值

发布网友 发布时间:2022-05-02 13:00

我来回答

5个回答

热心网友 时间:2022-06-20 04:20

1、变量的指针就是变量的地址。存放变量地址的变量是指针变量。即在C语言中,允许用一个变量来存放指针,这种变量称为指针变量。因此,一个指针变量的值就是某个变量的地址或称为某变量的指针。

2、为了表示指针变量和它所指向的变量之间的关系,在程序中用“*”符号表示“指向”。

3、定义指针变量.对指针变量的定义包括三个内容:指针类型说明,即定义变量为一个指针变量和指针变量名的基本形式类型说明符*变量名。

4、int i,j;表示i,j是一个指针变量,它的值是某个整型变量的地址。或者说i,j指向一个整型变量。至于i、j究竟指向哪一个整型变量,应由向i,j赋予的地址来决定。

5、int *s是指向整型变量的指针变量,float *d是指向浮点变量的指针变量,char *g;是指向字符变量的指针变量。应该注意的是,一个指针变量只能指向同类型的变量,如s只能指向浮点变量,不能时而指向一个浮点变量,时而又指向一个字符变量。

6、指针变量的引用,指针变量同普通变量一样,使用之前不仅要定义说明,而且必须赋予具体的值。未经赋值的指针变量不能使用,否则将造成系统混乱,甚至死机。

热心网友 时间:2022-06-20 04:21

指针在用要注意初始化,例如:

int *p;

p为指针,地址是未知的,如果直接赋值

*p=a;这样编译可以通过,但是会产生警告,p的地址是随机分配的,这样对未知的地址赋值很危险,可能会覆盖掉某些重要数据,所以避免这种危险,在定义指针时注意初始化,也就是赋值。

可以int *p=&a;

或者int *p;

p=&a;

然后再对p进行操作

有错。

注意大小写,还有

int a=9;

int *p;

p=&a;//这个是指针指向a

*p=8;

这样就对了。

扩展资料:

指针的赋值

int *p;

int a;

int b[1];

p = &a; 

p = b; 

指针的赋值,“=”的左操作数能够是*p,也能够是p。

当“=”的左操作数是*p时,改变的是p所指向的地址存放的数据;

当“=”的左操作数是p时,改变的是p所指向的地址。

数组的变量名b表示该数组的首地址,因此p=b;也是正确的

同类型的指针赋值:

int val1 = 18,val2 = 19;

int *p1,*p2;

p1 = &val1;

p2 = &val2;

p1 = p2;   //注意啦,p1指向了val2,而没有指向val1

备注:字符串与指针的初始化和赋值

初始化:

char *cp = "abcdefg"; //这个初始化过程,是将指针cp指向字符串的首地址,而并非传递字符串的值。由于,在C语言里面,没有总体处理一个字符串的机制

赋值:

cp = "abcdefg";

*cp=”abcdefg” ;//错误!字符串常量传递的是它的首地址,不能够通过*cp改动该字符串的值,由于该字符串为常量,而它仅仅是简单的将指针指向该字符串常量。

热心网友 时间:2022-06-20 04:21

  指针的赋值
  int *p;
  int a;
  int b[1];
  p = &a;
  p = b;
  指针的赋值,“=”的左操作数可以是*p,也可以是p。
  当“=”的左操作数是*p时,改变的是p所指向的地址存放的数据;
  当“=”的左操作数是p时,改变的是p所指向的地址。
  数组的变量名b表示该数组的首地址,因此p=b;也是正确的.
  同类型的指针赋值:

  int val1 = 18,val2 = 19;

  int *p1,*p2;
  p1 = &val1;
  p2 = &val2;
  p1 = p2; //注意啦,p1指向了val2,而没有指向val1

热心网友 时间:2022-06-20 04:22

p指向变量b的地址答案是D,
A.*p指向变量b的值
*&b=*p
因为p=&b
B.同理
*p指向变量b的值
不是地址
后面的
&*b没有这种表达的
c

热心网友 时间:2022-06-20 04:23

同学你好,也许是你的函数概念不是很清楚,首先函数init一个需要接受字符或者字符串的函数,你使用Void init("ascc''),就相当于把''ascc''作为参数给了这个函数,这正是函数所需要的,所以调用成功非常正常,但是你使用*pp=''ddd'',这本身是个无用操作,因为pp是作为函数的一个局部变量,是用来存储传递给函数的那个字符串的,比如''ascc'',如果你自己给它乱赋一个值,那显然没有意义,函数就是拿来调用的,给予函数需要的参数,函数就能工作了。这样使用 init(''ddd'')才是对的。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
胶原蛋白线双眼皮是不是永久性 双眼皮埋线是蛋白质还是尼龙绳-双眼皮埋线蛋白线多久能吸收 人体输液的“港口”完全植入式输液港 双眼皮宽变窄修复的方法 同心保家庭重疾险靠不靠谱?便宜吗? 做完双眼皮一宽一窄怎么办 喝全脂奶粉对长高有没有什么好处? redmine中“选择一个项目..."下拉列表框中为什么只列出一个项目,我建... 南充市龙门中学实力现在怎样?他的奥赛班是重点班么? 感情中为什么总是不知足呢? C语言中int后是一个带有小数的数字,那么它的值是多少? c语言中int定义变量时应注意些什么?何时需要加初值,何时不需要? 关于c语言中int i=10这个语句有关的立即数赋值的问题 C语言指针变量的赋值和做函数的参数 C语言中的这样赋值语句是啥意思? C语言中double 和int型的数据之间可相互赋值? 在C语言中,定义一个整型变量后,给它赋初值,然后要怎样赋值,才能... 电脑那个按键是中文拼音 电脑打拼音是哪两个键 C语言int 赋值问题 python怎么发送proto组成的包 C语言中 怎么给int (*buf)[10]赋值 c语言中int类型赋值给字符串怎么弄啊? C语言中这个赋值语句正确吗?为什么?y=int(x);这个语句错在哪里? C语言中如给一个int型的变量赋值int a=4;和int a;a=4;两种方式有区别吗? c语言,int赋值给char C语言中的赋值int a=1,b=2; 和 int a=1;b=2;两个都对吗? C语言中什么是逗号表达式?c=int(a+b)是赋值语句吗?谢谢 电脑打拼音的快捷键是什么 C语言中赋值语句有什么规则要求 c语言中赋值 a=2;b=3;与a=2,b=3;哪个是正确的写法 马来西亚森达美是什么企业? 蒙汉情深何忍别天涯碧草话斜阳用生动语言描绘情境50字 大家帮忙想一下 纳兰容若公子都写过什么,写完的是哪个 仙剑奇侠传三演重楼的那个的所有资料,包括图 “WBW水之美”国际集团公司的详细介绍? 马来西亚中国公司在那很多么 悬赏30!!求薛涛诗一首!!!(含"清风素面满楼香"的那首) 学校封校了快递进不来,没烟了怎么办 哪位大哥推荐点好看的小说 长点的 起码要五百章吧 谁有全元曲的书呀,请查一下汪元亨的一句话? 一千四年光年等于多少公里要多久才飞到 1400万光年距离是多少 现在飞船最远能飞多远?1400光年的话要飞多久大概 ? 光年什么概念?1400光年什么概念?人目不转看1400年才能看到的东西对吗?难道科学寿长超1400年 手机喊麦能不能用声卡? 一光年是光跑一年的距离 ,那为什么开普勒离地球1400光年卫星是怎么飞过去的 ,目前又没有超光速的 1400光年是多长 MC喊麦可以不用声卡吗