%s与%c
2016-04-17 13:01
155 查看
字符串是以\0结尾,在输出中使用%s接受输出字符串,%s的作用是从字符串的第一个字符的地址开始知道遇到\0结束
因为指针接收字符串时,字符串是放在内存中的常量区,不可改变,所以//buf[2]=’F’;这一行会报错.
*buf的意思是:指向buf保存地址所在的内存空间保存的值;
#include <stdio.h> int main(){ char *buf="ABCDEFG"; printf("buf=%c\n”,*(buf+2)); //buf[2]='F'; printf("end!\n"); }
因为指针接收字符串时,字符串是放在内存中的常量区,不可改变,所以//buf[2]=’F’;这一行会报错.
p1[5] = {'l','z','p'}; p2[5] = "lzp";
而字符的输出接收符是%c,只接收一个单独的字符,不能直接使用buf,而要使用*buf, 其他字符依次为*buf+1; 如果使用%s接收字符串,会把p1的三个字符全输出,然后还会接着输出后边跟着的野数据,因为p1末尾没有\0,(%s从开始字符的地址开始检索知道遇到\0才会停止);
*buf的意思是:指向buf保存地址所在的内存空间保存的值;
相关文章推荐
- 数组作数据成员-工资类。
- OpenGL三维球体体数据生成与绘制
- 一,细说 HTML5 之 HTML5 基础讲解
- 如何给mac book pro升级内存
- 我的记单词方法
- C++编译器为空类“润物细无声”地做些什么
- oracle学习 第三章 常用的SQL*PLUS命令 ——02
- 《Linux内核分析》第八周 进程的切换和系统的一般执行过程
- 旋转数组的最小数字
- iOS本地化翻译xliff文件
- MyEclipse安装后需要进行的配置
- HDU - Segment
- Java中普通代码块,构造代码块,静态代码块区别
- 虚函数表与虚表钩子
- SMBIOS
- HDU 5667 Sequence
- cocoNode节点函数注释
- 二叉树的深度
- android中关于listView复用时出现错乱问题
- 阻塞 非阻塞 同步 异步 线程 进程 任务