66问答网
所有问题
当前搜索:
为什么字符串指针不能赋值
c语言中,
为什么不能
对
字符指针
变量指向的字符串再
赋值
?
答:
因为C语言中,
凡是以""括住的形式直接出现,而且你又没有为其分配内存空间的字符串都是常量字符串,是不能修改其值的
。这样:char a[6]="hello";a[2]='c';就可以了。这里你为hello分配了一个长度为6的字符数组空间来存放。
为什么
C语言的
字符指针不能
这样
赋值
答:
char *s = "abc";这种形式声明的,是
字符串
常量,s是
不可
改变的 改成char s[] = "abc";就可变 但即便可变,也要用strcpy(s,t)的方式来修改值
c语言
字符串指针为什么不能
用scanf
赋值
答:
C语言是比较低级的语言,没有
字符串
概念,只有字符数组,
不能
自动分配空间,要存放数据,必须预先定义存储空间的大小!改为:char name[100]; 一定要常量 scanf("%d%s",&a[i].nu,a[i].name); 就没问题了!估计你曾经看过这种定义法:char *name="abcd";这种也是字符数组初始化固定的空间4个...
c语言
字符串指针为什么不能
用scanf
赋值
答:
给字符串指针赋值 你要事先给指针分配空间才行
。指针只是个地址,你要往指针所在的地址里存放内容,就必须给指针分配空间。如果你事先分配好了空间 ,scanf是可以给字符串指针赋值的。
C语言中
指针
是否能够直接
赋值
,
为什么
?
答:
l','l','o','\0'},在其他任何时候,它都表示一个
字符串
常量。而数组名也是一个
指针
常量,不能对常量赋值。所以 char a[] = "hello"; //正确,hello",并非一个字符串常量,而是相当于一个初始化列表 而 char a[6];a = "hello"; //错误,a为指针常量,不能修改,当然也
不能赋值
...
为什么字符串
之间
不能
进行
赋值
操作
答:
初始化和
赋值
是不同的。{'a', 'b', 'c'} 这东西不是表达式,没有类型,只能用来初始化数组或结构体,而数组可以隐式转换成指向其首元素的指针右值,该值能初始化或复制给指针对象。另外C字符串是以零值字符结尾的连续字符对象序列,并不是
字符指针
,只是可以通过字符指针处理字符串,C语言可以写 ...
C++中
不能
把
字符串
常量
赋值
给字符型
指针
?看下面的图片
答:
char *p="abc"这样定义编译器默认把abc当做常量,也就是等价于 const char *p="abc"你用strcat,就改变了p1的值了,所以报错 解决方法如下:方法一:char s1[]="abc", s2[2]="def";char *p1, *p2;p1=s1;p2=s2;strcat(p1, p2);方法二:把程序用Release编译看看可以用不,VC6下Debug...
字符串不能
整体
赋值
答:
字符串不能
整体
赋值
是因为数组名的实质是
指针
常量,不能给一个指针常量修改。根据查询相关信息得知,在C语言中平常给一个字符串初始化了,但是后面想重新赋一个字符串却错误,这是因为数组名的实质是指针常量,不能给一个指针常量修改。
为什么字符串
之间
不能
进行
赋值
操作
答:
一个
字符串指针
指向的是一组字符,直接用
赋值
操作只是把第一个字符的地址赋给了要赋值的指针。要把整个内容赋值给一个字符串指针可以用strcpy
C语言,用
指针
方式定义的
字符串为什么不能
修改?
答:
"123"本身默认的就是一个
字符串
常量,他的值不容修改,p只是一个
指针
,执行该字符串的首地址,对该地址的值指向的地址空间的值的改变也是
不允许
的。
1
2
3
4
5
6
7
8
9
10
涓嬩竴椤
灏鹃〉
其他人还搜
指针字符串定义与赋值
字符串不能直接赋值
字符串赋值给字符数组
字符串能直接赋值吗
指针指向字符串
c语言字符指针赋值
指针赋值给指针
如何给字符串赋值
C语言字符串赋值