为什么c语言用指针输出字符串不用加号

2021-03-09 19:54:18 字数 1006 阅读 4971

1楼:听不清啊

printf在输出字符串时,需要的是指向字符串的门地址。而str就是它所需要的这样一个首地址。

2楼:嵩山少侠来了

为什么c语言用指针输出字符串不用加*号?因为char*str定义了一个char*字符指针str,而str指向了ilovechina中的第一个字符i。

在cout流中有一个复制循环,它是一个具有数百个输出str点的字符串,在这个字符串中,str被赋值给临时指针,以便一个接一个地输出。

然后*str是一个字符,也就是i*是一个derecration,也就是str指向的那个字符,所以*str就是i这个不能被赋值或移位所以它不能被打印出来。

扩展资料:

关于字符串指针

1.字符数组中存储一个度字符串

char字符串[]="linuxc";

printf("%s\n",字符串);

字符串是一个字符数组的名称,它也是应答字符数组的第一个地址。

2.使用字符串指针指向一个字符串

如果你不想定义一个字符数组,你可以用一个指针指向一个字符串,称为“字符串指针”,例如:

char*p="linuxc";

printf(“%s\n”,p);

“linuxc”是一个字符串常量。字符串常量的c语言:在内存中打开一个字符数组来存储字符串常量,并将打开的字符数组的第一个地址保存到p。

c语言中用指针赋值字符串为什么不加*,如下

3楼:匿名用户

a="cool";

这是地址来赋值,将一个常量字符串

自的首地址赋值给a这个指针。

*a="cool";

这是字符赋值,不是字符串!虽然a叫字符串指针,但char* a这样的定义,*a必然是一个字符,而不是多个。因此后面的常量会被忽略为一个字符,进行数值赋值(也可以理解为拷贝赋值,区别于地址赋值)。

在a没有分配地址的情况下,直接 *a=“***” 会造成内存报错,而a=则不会。

怎样用c语言输出前驱字符和后继字符

1楼 听不清啊 char c scanf c c printf c c c 1 c 1 2楼 查素滕河 如楼上所说 常见于连续存储的数据结构 数组 链表 栈 队列 以字符数组为例 abcde 其中b的前驱是a 后继是c c语言中,前驱字符和后继字符是什么意思 3楼 匿名用户 如楼上所说 常见于连续存...

C语言编程用什么标点符号,在C语言中各个标点符号的作用

1楼 通通爱吃糖 英文半角的标点符号,建议使用自带的英文键盘,也就是不用输入法,那个是不存在全角半角一说的 2楼 匿名用户 英文状态下的标点符号 在c语言中各个标点符号的作用 3楼 恶魔 好的 分号, 在c语言中表示句号,是非循环体都要有的,每一个语句结束都要有,逗号,一般用于变量声明一次声明一堆还...

用c语言编程输入字符若是小写字母转换为

1楼 木澂 如下 include int main 在devc 环境下运行效果如下 2楼 郝在益 如果是小写,则将这个字符减去32,再输出。反之,加上32就是了。 include main 满意请采纳! 3楼 匿名用户 include void main else if ch 97 ch 122 p...