指针赋值有几种方法(C语言指针的赋值问题)
本文目录
C语言指针的赋值问题
指针在用要注意初始化,例如:
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;
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改动该字符串的值,由于该字符串为常量,而它仅仅是简单的将指针指向该字符串常量。
指针数组如何赋值
如果没有描述错误的话,指针数组用法如下:int * p;int i;int a,b,c;p=&a p=&bp=&c但根据我的经验,通常情况下没有必要使用指针数组的,而是使用指向数组的指针,所以怀疑题主描述错误。如果是指向数组的指针的话,对数组初始化如下 :int *p;int a;int i;p=&a;for(i=0;i《3;i++){ *p++=0;}
怎样向指针变量所指向的变量赋值
可以直接通过对指针赋值以达到对它所指向的变量赋值。#include《iostream.h》voidmain(){inta;int*p;p=&a*p=3;cout《《a《《endl;}a是p指向的变量,*p=3;//指针p指向的值为3,a的值也变为3
怎么正确地给指向数组的指针赋值
用同类型的值进行赋值.
比如
int (*p);
可以用同类型的
int (*q);
给它赋值.
也可以
int a;
然后用任意一行首地址赋值.
如
p=a;p=&a;
等等.
这个是最基础的用法, 也可以强制转换, 实现一维数组 或者其他连续内存, 以数组方式访问.
更多文章:
有人说,最近10年,投资房产的人跑赢了90%以上的生意人和工薪族,是这样吗?日赢集团在投资上面有什么好的策略呢
2024年6月28日 03:02
如果地球是一个立方体,我们将如何找到世界上最短的道路?立方体世界的游戏介绍
2023年6月3日 03:40
wow兽栏如何获得狂野之血?求助 狂野之血 1.08 THD
2024年1月29日 21:00
office2020破解版(哪一个站可以下载word2020)
2024年7月3日 12:51
赛尔号的回归礼包需要连续多少天不登陆才可以领现在还送三兄弟么?赛尔号刻印礼包值得买吗
2023年11月8日 08:40
office2007 sp2(Microsoft Office 2007 SP2是什么意思)
2024年7月21日 18:09
sublime text(Sublime Text 有哪些实用技巧)
2024年7月8日 07:08
qq飞车手游模拟器(mumu模拟器里的qq飞车怎么ios系统)
2024年4月17日 09:41