字符串的大小及与指针的关系

来源:互联网 发布:吃鸡网络延迟 编辑:程序博客网 时间:2024/06/11 19:31

字符串的大小及与指针的关系

#include "stdafx.h"//常见的常量 1 1.0 存储在代码段//常见的字符串,存储在数据段中的只读数据段(RO read only)int _tmain(int argc, _TCHAR* argv[]){int a = 1; //sizeof(a); sizeof(int); sizeof(1);printf("%d\n", sizeof("hello"));  //大小为6 因为字符串中有 'h' 'e' 'l' 'l' 'o' '\0' 6个 //最后的字符'\0',我们称为字符串结束字符,是系统对双引//号引起的字符串自动加设的,而非手动干预的                                  printf("%s\n", "hello world");   //输出 hello worldchar* p = "hello world"; //编译器将 hello world 编译成一个指针 指向这段只读字符串//"hello world" 存储到只读数据段 p为此段的首地址printf("p=%p, \"hello world\"=%p\n", p, "hello world"); // \为转移字符printf("%s\n", p); //打印整个字符串 就是以%s的形式打印指针地址printf("%c\n", *p);//相当于打印字符串第一个字符,因为指针p的位置就是'h'的位置//而且*p只是代表字符串中的第一个字符,所以不能用printf("%s",*p)来打印整个字符串printf("%c\n", p[0]);  //%c 打印第一个字符 hprintf("%p\n", &p[0]);//"hello world" 等价于pprintf("%c\n", "hello world"[0]); printf("%p\n", &"hello world"[0]);//p[0]='a';  系统会崩溃 因为是只读数据 不能修改return 0;}





原创粉丝点击