c语言数组赋值给指针
A. c语言指针赋值的问题(关于数组的赋值)
指针只是申明了而没有初始化。
p是指针,*p是取p指向的地址的内容。
你可以这样写:
char
c
=
0;
char
*p
=
&c;
//初始化
*p
=
s[0];
也可以这样写:
char
*p
=
&s[0];//初始化
或者
char
*p
=
new
char(s[0]);//分配内存,初始化
delete
p;
也可以这样写:
char
s[0];
char
*p
=
s;//p指向s数组
B. c语言 指针如何赋值
指针的赋值
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
C. C语言二维数组的地址为什么 不可以赋值给指针变量
二维数组的数组名和一维数组的数组名不一样。
一维数组名a表示其首地址,指针类型是(int *)。
二维数组名d表示其行指针,指针类型是(int (*)[7])。
所以你要定义指针去用二维数组名赋值,需要定义指针int (*k)[7];不是int *k。
或者你把二维数组当成一维数组来看(二维内部地址是连续的,和一维一样),这样int *k;k=&d[0][0];之后通过k++遍历二维数组所有值。
D. C语言 如何给字符指针数组赋值
字符指针数组的赋值和普通数组的赋值是一样的,只不过字符指针数组里的元素是指针。
以下是字符指针数组赋值的示例:
char*pChar[5];
charstr1[]="First";
charstr2[]="Second";
charstr3[]="Third";
charstr4[]="Fourth";
charstr5[]="Fifth";
pChar[0]=str1;
pChar[1]=str2;
pChar[2]=str3;
pChar[3]=str4;
pChar[4]=str5;
for(inti=0;i<5;i++)
{
printf("pChar[%d]=%s ",i,pChar[i]);
}
E. C语言可以把指针和数组名之间相互赋值吗
不可以,C/C++中 数组名虽然形同一个指针 但是是常值 是不可以进行赋值操作的,同理 也不可以进行++ -- += -= 操作,希望可以帮助到你
F. c语言中将一个数组的值赋给另外一个数组,好像要用指针来赋值
错误的,不能用赋值语句将一个字符串常量直接给一个字符数组赋值。
chars[20];
charss[]="hello";
s=ss;错误原因是:是您不能使用赋值语句将一个字符数组直接赋值给一个字符串数组,也就是说,必须使用strcpy()函数来实现一个字符串的副本(在c语言中,但是在c++的string类中,上面的赋值是正确的)。
因为赋值字符“=”右边的表达式也可以是赋值表达式,下面的形式变量是=(变量=表达式);这是真的,所以它是嵌套的。展开后的一般形式为:variable=variable=…=表达式;例如:a=b=c=d=e=5;根据赋值运算符的正确啮合,其有效等价为:e=5;D=e;C=d.B=C.A=B;
Chara[]="toyou";正确的理由:因为当你声明一个数组变量时,你只是为它腾出空间并初始化它,这是c语法。
G. C语言可以用指针数组赋值给数组指针吗
我这里有C++环境,帮你试了一下不行(当然,也有变相的方法,就是将数组指针的首元素地址给指针数组中的一个指针),估计C差不多。
情况参考图:
二者的类型系统认为是不相等的。
H. C语言:如何将字符串数组赋值给一个字符串指针或数组
直接在一个字符串里面按位赋值就可以了。像二楼说的一样。
因为你原字符串肯定是大于等于新字符串的,所以定一个变量检查原字符串的位置,定另一个变量检查新字符串的位置。那么第一个变量肯定是大于等于第二个变量的。这样可以把值从第一个变量的地方赋值到第二个变量的位置即可。
I. C语言如何给指针数组动态赋值
可以试试再创建一个char类型的二维数组,如char
temp[16][16],然后分别把temp[0
...
15]的每一个元素temp[...][0...14]赋上'a'
+
随机数值(0
~
25的)。再把temp[...][15]赋值为'\0'。最后把str[0...15]分别指向temp[0...15]
J. c语言求问数组名可以赋值给指针变量吗 如char ch[]="xbxbbxbx",*p; pc=c
可以的,数组名就是数组第一个元素的指针,所以可以赋值给相同类型的指针变量,此时,数组名和这个指针都指向这个数组的开头。