当前位置:首页 » 编程语言 » c语言指针数组赋值

c语言指针数组赋值

发布时间: 2022-04-28 10:27:29

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语言指针赋值的问题(关于数组的赋值)

指针只是申明了而没有初始化。
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数组

⑶ C语言字符指针数组赋值问题

char*
p_str[3],p_str是一个指针数组。
修改前,实际存储空间只有数组a,p_str中的三个指针都为a的地址,所以后面输入的会把前面的覆盖,而且输出时都是a中的内容。
修改后
p_str[i]=(char*)malloc(sizeof(p_str)*10);
p_str中的指针指向新分配的存储空间了,但是为嘛下一句输入却要用p呢?这不搭配,scanf("%s",p_str[i])
才和这句搭配。另外sizeof(p_str)是12,因为是一个存放3个指针的数组。似乎和逻辑不符合,应该是sizeof(char)才对。
//scanf("%s",p);
//p_str[i]=p;
或者可以改成这样
for(int i=0; i<3; i++)
{
p = (char*)malloc(sizeof(char)*10);
scanf("%s", p);
p_str[i] = p;
}

⑷ C语言 怎么把指针的值 赋给另一个数组

1.
不能把数组的首地址赋给另一个数组。因为数组名是常量指针类型,初始化之后是不能够被修改的。
2.
有两种办法实现类似功能,一种是创建指针变量,把地址直接赋值指针变量:
例如
int
a[100];
int
*b=a;
第二种就是直接用循环一一复制每个元素。
例如
for(i=0;i
评论
0
0
加载更多

⑸ 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语言如何给指针数组动态赋值

可以试试再创建一个char类型的二维数组,如char
temp[16][16],然后分别把temp[0
...
15]的每一个元素temp[...][0...14]赋上'a'
+
随机数值(0
~
25的)。再把temp[...][15]赋值为'\0'。最后把str[0...15]分别指向temp[0...15]

⑺ 请问C语言 char类型的指针要怎么赋值

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char *source = malloc(20*sizeof(char);
printf("Please input source \n");
scanf("%s",source);//f方法三
printf("%s\n",source);
char *temp = "my input source"
sprintf(source,"%s",temp);//方法一
printf("%s\n",source);
strcpy(source,temp);//方法二
printf("%s\n",source);
return 0 ;
}
指针是无法存放字符串的,只有指针指向的那块空间才能存放字符串,所以我第一句话给它开辟了20个空间,这样就可以给指针指向的那块空间赋值了,谢谢
另外给你一个建议 char *a = NULL,*b =NULL,*c =NULL;这样的写法是不规范的,很容易出错。标准形式应该是char *a= NULL;
char *b = NULL;
char *c = NULL;

⑻ C语言 如何给字符指针数组赋值

你那样只是定义了5个指针,并没有给每个指针分配相应的内存空间,当然会出错
gets函数的参数是一个字符指针,应该用gets(p[i]);
char
*p[5];
char
*d;
char
p1[5][20];
int
i,j;
printf("输入5个城市\n");
for(i=0;i<5;i++)
{
p[i]
=
p1[i];
gets(p[i]);
}
.......

⑼ 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;

这样就对了。

(9)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

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

初始化:

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

赋值:

cp = "abcdefg";

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

⑽ 请问在c语言中如何通过输入字符串为字符指针数组赋值

首先确定是字符指针数组还是字符数组指针,前者是一个数组,数组每个元素都是一个字符指针,后者是一个指向字符数组的指针。
若是指向字符数组的指针,则很简单,使用scanf("%s",
str);函数获取输入的字符串,然后使用字符串拷贝函数strcpy(stc,
dest);将获取的字符串拷贝到指定地址的字符指针数组中,拷贝过程中注意检查访问数组是否越界,若越界,则需要在字符数组的最后一个元素赋值为结束符'\0'。
若是赋值
字符指针数组,那么就是对数组中的某一个元素指向的字符数组进行拷贝赋值,其过程与前者相同。

热点内容
鼠标如何编程 发布:2025-05-16 02:29:09 浏览:815
安卓70能用什么软件 发布:2025-05-16 01:45:09 浏览:480
编程发展史 发布:2025-05-16 01:38:52 浏览:528
android图片气泡 发布:2025-05-16 01:38:40 浏览:885
文件加密编辑器下载 发布:2025-05-16 01:30:41 浏览:343
linuxapacheyum安装 发布:2025-05-16 01:30:31 浏览:476
大连宾利浴池wifi密码是多少 发布:2025-05-16 01:25:36 浏览:172
缓存数据生产服务 发布:2025-05-16 01:08:58 浏览:585
普通电脑服务器图片 发布:2025-05-16 01:04:02 浏览:971
服务器地址和端口如何区分 发布:2025-05-16 01:03:17 浏览:834