今天给各位分享c语言字符串指针的知识,其中也会对c语言字符串指针输出进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、c语言字符串指针为什么不能用scanf赋值
- 2、C语言,字符串指针指向的字符串,那个字符串存储在哪个位置?
- 3、在给指针变量处理字符串时可以直接给指针赋值为字符串常量也可以通过ge...
- 4、字符串的指针和指向字符串的指针变量的区别
- 5、
- 6、怎样将字符串赋给指针指示的字符串
c语言字符串指针为什么不能用scanf赋值
代码和输入格式有误。scanf(%d,%d,&a,&b);按照这个格式,输入数据的时候,应该加上逗号。比如说想输入22 33 就应该 22,33。
scanf(%s,s); 这是给字符串变量赋值的语句,你指针没有被初始化,你运行时它会随机指向一块内存空间。建议你以后定义指针时立即初始化下,为char *s = NULL; 否则会造成野指针的现象。
你查一下你的头文件stdafx.h中有没有包含 include stdio.h引用。估计是没有引用到。
scanf不能输入字符串:因为scanf函数遇到空格,换行符或者tab键的时候后会立即结束读取,所以,你输入hello jane,最后读取的只有jane。
当然,要是你第二句“scanf()”不是输入字符而是输入数据的 话, 那就没有此问题出现。解决的办法是在第二个“scanf()”语句前加一句getchar();此处的getchar();就是用来吞噬掉前面的“回车”。
所以在最后打印name2的值,显示的是Wilson。当我们输入c回车时,scanf从缓冲区把c提走赋予ch,但回车还在缓冲区并未提走,输入字符串时因为回车也是字符所以被赋予给ch1。
C语言,字符串指针指向的字符串,那个字符串存储在哪个位置?
1、&idxbuf:取地址,%p与指针对应,是输出指针的地址。address:0x7ffeffc9f0b0,就是字符串指针idxbuf指向的字符串存储在内存中的地址位置。
2、C语言规定只能逐个引用数组元素,而不能一次引用整个数组。对于字符数组,可以将整个字符串一次输入或输出。字符数组用于存放字符或字符串,字符数组中的一个元素存放一个字符,它在内存中占用一个字节。
3、数组名s可以看作数组的首地址,可以直接对它进行操作;或用一个char指针:char *p(注意:字符串指针没有这个说法,可以叫做指向字符数组的指针)p = s;或p = &s[0];用指针p指向s数组的首地址。
在给指针变量处理字符串时可以直接给指针赋值为字符串常量也可以通过ge...
可以直接给指针指向的数据赋值。因为*p操作是这样一种运算,返回p的值作为地址的那个空间的取值。存放地址的变量称为指针变量。
在C语言中,字符串的赋值主要有两种方法,第一种是通过指针的方式直接赋值,第二种是通过数组直接赋值。指针式赋值。通过程序的运行情况,可以知道:char *p = hello;这种字符串的赋值方式是完全没有问题的。
可以,但int *p;*p=7;这样不行。因为“能直接给指针指向的数据”赋值,而这里的p还没有指向,所以不能赋值,这种指针有个名字叫“悬浮指针”,是不能给它赋值的。
字符串的指针和指向字符串的指针变量的区别
1、存储内容不同。字符指针变量中存储的是字符串的首地址,而字符数组中存储的是字符串本身(数组的每个元素存放一个字符)。(2)赋值方式不同。
2、概念不同 “指针”是概念,“指针变量”是具体实现,指针也是一个变量,所以需要进行定义,而对于指针的定义,与一般变量一样。
3、字符串指针变量的定义说明与指向字符变量的指针变量说明是相同的。只能按对指针变量的赋值不同来区别。对指向字符变量的指针变量应赋予该字符变量的地址。如: char c,*p=表示p是一个指向字符变量c的指针变量。
4、都一样的东西,这就是c,c++的特色。char *s;s既可以是一个字符串的头地址,也可以是一个字符的地址,所以定义的指针需要你自己记住是个字符还是字符串。
C语言中指向字符串常量的指针问题
1、注意:你这个问题是个特例,在C语言里实际上是可以修改的,且在 TC 下可以通过。
2、第一个:char *p = 123456;char *s = asdghh;s = *p;你这个之所以会错,是因为指针s指向的是常量字符串 asdghh 而*s=*p相当于改变常量字符串的值,常量是不能改变的,而且常量也不能做左值,所以出错。
3、错误原因:a、b是字符指针,它们指向常量字符串。当你把它们作为参数传递给函数copy_string时,函数所做的操作就是改变b所指向的字符串的值,所以错误。
4、如果输入12345,那么p指向1,即p中存放着1的地址。没有字符串的指针和指针指向的内容不能修改一说。
5、指向字符串常量的话,这段常量字符串是存储在静态存储区的,内容不能修改。
6、char a=a;str[2]=a;这样赋值不行的原因:char *str=hello,world; //定义一个指针,指向“字符常量”注意常量是不能被改变的,你想对它赋值(即修改它)自然编译会出错。
怎样将字符串赋给指针指示的字符串
1、在C语言中,字符串的赋值方式有以下几种:字符数组赋值:可以通过定义一个字符数组,并逐个赋值字符来表示字符串。
2、字符串可以赋值给字符指针变量,或者将字符串用字符数组保存。
3、直接在一个字符串里面按位赋值就可以了。像二楼说的一样。因为你原字符串肯定是大于等于新字符串的,所以定一个变量检查原字符串的位置,定另一个变量检查新字符串的位置。那么第一个变量肯定是大于等于第二个变量的。
4、首先要定义一个字符指针,然后将字符串赋值赋值给它。
5、char s;这种指针,它没有存放字符串的空间。
6、如果想将string转换成指针,可以使用string类的c_str函数。c_str()返回const char*,指向一个字符数组,数组里存的字符串就是原string的值,而且最后以\0结尾。不过由于是const char*,无法修改。
关于c语言字符串指针和c语言字符串指针输出的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。