指针的指针、字符串和指针、数组指针(详) 一、指针的指针 指针的指针,即指针的地址 定义了一个指针变量,指针变量本身占4个字节,指针变量也有地址编号 例: int a=0x; 假设a的地址为:0x0000 2000 int *p; p=&a; 则p中存放的是a的地址编号为0x0000 2000 因为p也占4个字节,有自己的地址编号,即指针变量的地址,即指针的指针 假设p的地址编号为0x0000 3000,这个地址是指针p的地址 定义一个变量去存放p的地址编号,这个变量就是指针的指针 int q; q=&p;//q就保存了p的地址,也可以说q指向了p 则q里存放的就是0x00003000
p和q都是指针变量,都占4个字节,都是存放地址编号,只是类型不一样 二、字符串和指针 字符串的概念: 字符串就是’0’结尾的若干的字符的集合:”hello” 字符串的地址:是第一个字符的地址,字符串”hello”的地址,其实就是字符串中’h’的地址,即我们可以定义一个变量保存字符串的地址:char *s=”hello”; 字符串的存储形式:数组、文字常量区、堆 1.字符串存在数组中 其实就是在内存(栈、静态全局区)中开辟了一段空间存放字符串。 char str[100]=”hello”; 定义了一个字符数组str,用来存放多个字符,并且用hello给str数组初始化,字符串”hello”,存放在str中 注意:普通全局数组,内存分配在静态全局区 普通局部数组,内存分配在栈区 静态数组(静态全局数组、静态局部数组),内存分配在静态全局区 2.字符串存放在文字常量区 在文字常量区开辟了一段空间存放字符串,将字符串的首地址赋给指针变量 char *str=”helloworld”; 定义了一个字符指针变量str,只能存放字符地址编号, “helloworld”这个字符串中的字符不是存放在str指针变量中 str只是存放了字符’h’的地址编号,“helloworld”存放在字符常量区 3.字符串存放在堆区 使用malloc等函数在堆区申请空间,将字符串拷贝到堆区 char *str=(char *)malloc(100*sizeof(char));//动态申请了100个字节的存储空间 首地址给str赋值 strcpy(str,”helloworld”);//将字符串”helloworl
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/59744.html