| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1014 人关注过本帖
标题:指针与字符串求教!!!
只看楼主 加入收藏
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
收藏
得分:0 
"abc"是一个字符串,它在内存中占了4个字节,a,b,c还有'\0'各占一个字节,'\0'是字符串的结束标志,字符串输出函数puts将各个字符输出直到遇到‘\0’就停止输出。

希望对你有帮助!

南国利剑
2010-05-08 11:01
dream_c
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-05-08 11:23
qbear
Rank: 2
等 级:论坛游民
帖 子:9
专家分:17
注 册:2010-4-7
收藏
得分:0 
回复 10楼 dream_c
   “abc”是一个字符串常量,就是一串以'\0'结尾的字符,在C中,字符串以字符数组进行存储
    在使用字符串常量时,字符串常量传递给表达式的值,实际上是该字符串的地址,而不是这些字符本身,所以我们可以把一个字符串常量赋给一个指向字符的指针,而不能赋给一个字符数组
    用puts()输出字符串常量,字符数组其实是一样的处理过程,把首地址传递给puts函数,然后输出该内存地址中的字符,然后首地址加1,再输出,一直进行到结束符‘\0’为止。

我的理解就是这样,不知道表达清楚没。。。。
2010-05-08 12:41
honey536
Rank: 2
来 自:山东
等 级:论坛游民
帖 子:68
专家分:76
注 册:2010-4-20
收藏
得分:10 
一个字符串的地址是一个整体,指针如果能指向这个字符串的首地址,就能输出该字符串。
例如:调用函数中的用数组作为实参传递      传递的只能是首地址,而不能是数组。对不对?
有疑问加编程群群108668542  
2010-05-08 13:26
xueyuhanhai
Rank: 4
等 级:业余侠客
帖 子:90
专家分:238
注 册:2010-4-5
收藏
得分:0 
char *p="abc";
puts(p);


p是指针,没有错的。里面放的是所指向的变量的地址。
char *p="abc";等价于char *p;p="abc";此处实际就是指向a的,即把字符串abc的首地址(a的地址)给p;

用puts(p)输出时系统会自动的输出指针p中存放的地址的内容的,之后进行地址的自动加1,直到遇到\0为止。
2010-05-08 13:50
longyi3030
Rank: 2
等 级:论坛游民
帖 子:36
专家分:38
注 册:2010-3-5
收藏
得分:0 
LZ已经进了牛角尖了  改日在看下就好多了

初学者,
2010-05-08 15:21
快速回复:指针与字符串求教!!!
数据加载中...
 
   



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

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