标题:关于输出字符串的问题
取消只看楼主
zcc12342234
Rank: 1
等 级:新手上路
帖 子:8
专家分:7
注 册:2012-8-8
结帖率:0
已结贴  问题点数:20 回复次数:0 
关于输出字符串的问题

char * p = "Hello";
等价于以下代码:

char * p;

char string[] = "Hello";

p = string;

如查要输出字符串的内容,有两种方式:

1、按每个字符输出
#include<stdio.h>

int main(void)
{
       char *p="hello";
       while(*p!='\0')
             printf("%c",*p++);
       system("pause");//用于程序编译成exe后,运行exe时暂停dos窗口。
}

2、以字符串形式直接输出
#include<stdio.h>

void main()
{
       char *p="hello";
     
             printf("%s",p);//指针指向的是字符串"Hello"的首地址,系统会自动移动字符串指针,直到遇上'\0',这就是字符串可以以printf("%s",p);输出的原因
       system("pause");
}

问题:::【这里printf("%s",p)等价于 while (*p!=\0) printf("%c", *p++)这是c本身规定的吗?为什么pintf("%s", *p);输出不了呢?是因为无法确定p所指向的空间长度的问题吗?】
搜索更多相关主题的帖子: void include system 字符串 
2012-08-22 00:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-379901-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.618645 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved