C语言 如何给字符指针数组赋值
字符指针数组的赋值和普通数组的赋值是一样的,只不过字符指针数组里的元素是指针。
以下是字符指针数组赋值的示例:
char* pChar[5];
char str1[] = “First”;
char str2[] = “Second”;
char str3[] = “Third”;
char str4[] = “Fourth”;
char str5[] = “Fifth”;
pChar[0] = str1;
pChar[1] = str2;
pChar[2] = str3;
pChar[3] = str4;
pChar[4] = str5;
for (int i=0;i5;i++)
{
printf(“pChar[%d] = %s\n”,i,pChar[i]);
}
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语言结构体中指针数组怎样赋值
看Unix/Linux上的man:
Standard
C
Library
Functions
gets(3C)
NAME
gets,
fgets
–
get
a
string
from
a
stream
SYNOPSIS
#include
char
*gets(char
*s);
char
*fgets(char
*s,
int
n,
FILE
*stream);
DESCRIPTION
The
gets()
function
reads
bytes
from
the
standard
input
stream
(see
intro(3)),
stdin,
into
the
array
pointed
to
by
s,
until
a
newline
character
is
read
or
an
end-of-file
con-
dition
is
encountered.
The
newline
character
is
discarded
and
the
string
is
terminated
with
a
null
byte.
….
gets是标准库函数,要求传入的是一个数组的地址。其实是要求caller应当分配空间给他。你的结构体中指针数组指向了已经分配好的内存吗?如果没有就别想了。想用就自己先给他空间
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语法。
扩展资料:
C语言中字符串赋值的理解
一、指针式赋值
上面的例子很明显,也很容易理解。但是下面的方法有点难以理解。
通过程序的运行,我们可以知道:char*p=”hello”;这个字符串赋值非常好。为了理解这个赋值,我们首先需要理解双引号在这个语句中的作用(注意:这是双引号,不要使用单引号)。双引号有三个主要作用:
(1)申请了空间(在常量区),存放了字符串。
(2)在字符串尾加上了“\0”。
(3)返回地址。
这里所返回的地址就赋值给了char*类型的指针变量p。
二、通过字符数组直接把字符串赋值。程序如下:
三、需要注意的一些问题
直接把字符串赋值给数组名(也就是数组首元素的首地址)是不行的。
请问在c语言中如何通过输入字符串为字符指针数组赋值?
首先确定是字符指针数组还是字符数组指针,前者是一个数组,数组每个元素都是一个字符指针,后者是一个指向字符数组的指针。
若是指向字符数组的指针,则很简单,使用scanf(“%s”,
str);函数获取输入的字符串,然后使用字符串拷贝函数strcpy(stc,
dest);将获取的字符串拷贝到指定地址的字符指针数组中,拷贝过程中注意检查访问数组是否越界,若越界,则需要在字符数组的最后一个元素赋值为结束符’\0’。
若是赋值
字符指针数组,那么就是对数组中的某一个元素指向的字符数组进行拷贝赋值,其过程与前者相同。