C语言 指针与字符串
2016-03-15 13:52
134 查看
C语言可以在栈区 or 堆区 or 全局区 存放字符串,字符串不单单是存储在全局区的。
//字符串与指针 #include<stdio.h> #include<stdlib.h> #include<string.h> void main(){ //定义一个字符串数组 //详解:字符串"12345"存储在全局区(静态区),“ buf[10] = "12345";”完成的本质上是拷贝工作 //将字符串"12345"(包括字符'\0')6个字符拷贝到数组buf[10]对应的栈内存空间 char buf[10] = "12345"; //定义一个字符串数组 char buf2[] = "abcde";//本质上和buf[10]一样 //定义一个字符串指针 //详解:字符串"a1b2c3"存储在全局区(静态区),“ *p = "a1b2c3";”完成的工作本质上是给指针p赋值的工作 //将字符串"a1b2c3"存储在全局区的首地址赋值给指针p, char *p = "a1b2c3"; //在堆区内存上分配一块空间 char *p1 =(char *)malloc(sizeof(char)*100); //字符串"aaabb"存储在全局区(静态区),“strcpy(p1, "aaabb");”完成的本质上是拷贝工作 //将字符串"aaabb"(包括字符'\0')6个字符拷贝到指针p1所对应的堆内存空间 strcpy(p1, "aaabb"); system("pause"); }
相关文章推荐
- 用Visual C++开发数据库应用程序(一)
- C++模板
- 深入浅析 C++ 调用 Python 模块
- C++ 调用lib 和 dll的 方法 及 动态库DLL与静态库lib的区别
- C++ List模板
- C语言详解 - 文件
- C++函数与java函数菜鸟级的对比理解
- 第一次c++上机报告-1
- C语言函数sscanf()的用法
- 深入理解C++中的异常处理机制
- C++中Vector的erase()操作以及与remove的区别
- 排序——选择排序(C++)
- VC++的LNK1102 error out of memory 问题
- C++11 右值引用 编译器验证
- 开始学习C语言C++在这里记录自己的成长。简单的两变量交换问题
- C++怎么把字符串中的小写变为大写
- C++中的struct和class的区别
- C++用字符数组实现MyString类
- 详解让C++新手闹心的语句“cout<<"Hello!"<<endl;”
- 详解C++中经常看到的#include <iostream> using namespace std;