校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > 数据结构 > 基本性质
题目

若有定义"char a [10], *p=a; ”,那么下列赋值语句正确的是( )。

A.a [] ="abcdefg";

B.a=”abedefg";

C.*p=”abcdefg";

D.p=”abcdefg ";

解答

正确答案是 D


将字符串赋值给字符数组: ********************************************** 1.定义时直接用字符串赋值。 char a[10]="hello";但是不能先定义再赋值,即以下非法:char a[10];a[10]="hello"; ********************************************** 2.利用strcpy。 char a[10]; strcpy(a,"hello"); ********************************************** 3.利用指针。 char *p; p="hello";这里字符串返回首字母地址赋值给指针p。另外以下非法:char a[10]; a="hello"; a已经指向在堆栈中分配的10个字符空间,不能再指向数据区中的"hello"常量。可以理解为a是一个地址常量,不可变,p是一个地址变量。 ********************************************** 4.数组中的字符逐个赋值。
C 5条回复 评论
孑然

怎么没能早点看到你这篇文章呢

发表于 2022-05-25 22:00:00
0 0
我的艾迪不寻常

这篇文章写得不错 !

发表于 2021-11-15 23:00:00
0 0
子不语

请问这是依据什么语言给的答案 bcd的字符串都含有中文引号

发表于 2018-10-13 11:49:21
0 0
落地98K

双引号做了3件事: 1.申请了空间(在常量区),存放了字符串 2. 在字符串尾加上了'/0' 3.返回地址 你这里就是 返回的地址 赋值给了 p

发表于 2018-10-13 11:49:12
0 0
碧海问舟

选项,应该是a[10]="abcdefg"
B选项,a是数组首地址不能这样赋值
C选项,*p=a,也是指针地址变量,不能这样赋值
D正确

发表于 2018-10-13 11:49:05
0 0