C语言二级指针间接赋值
重要意义:间接赋值的意义,实现了模块的功能划分,实现了软件作品的分层,使得模块接口和信息系统得以实现。
所谓二级指针就是指向指针的指针,其声明形式如下
int *p=NULL
int **p1=NULL;
p1=&p;
一级指针*运算,从所指向内存空间取出数值(类比:一级指针是藏宝图,所指向的内存空间是宝藏的存放的地点,宝藏是数值)
二级指针*运算,从所指向内存空间取出地址(类比:二级指针是一个写有藏宝图存放地点的纸条,所指向的内存空间是藏宝图的存放的地点,藏宝图是数值)
- 通过二级指针改变一级指针
#include <stdio.h>
#include<stdlib.h>
int main()
{
char *p1=NULL;
char **p2=NULL;
p1=0x11;
printf("改变之前p1指向:%p\n",p1);
p2=0x22;
printf("改变之前p2指向:%p\n",p2);
p2=&p1;
*p2=;
printf("改变之后p2指向:%p\n",p2);
printf("改变之后p1指向:%p\n",p1);
printf("shit......%d\n",);
return ;
}
输出结果:

- 间接指针赋值的意义
#include <stdio.h>
#include<stdlib.h>
#include<string.h>
void modelfor2(char **line1,int *len1,char **line2,int *len2)
{
char *writeinln1 = (char*)malloc();
*line1=writeinln1;
strcpy(*line1,"九九那个艳阳天来嘿哟~");
*len1=strlen(writeinln1); printf("%s\n","===========================================");
char *writeinln2 = (char*)malloc();
*line2=writeinln2;
strcpy(*line2,"20多的弟弟呀,爱上那丁锅锅~");
*len2=strlen(writeinln2);
} int main()
{
int len1=;
char *story1=NULL;
int len2=;
char *story2=NULL;
modelfor2(&story1,&len1,&story2,&len2);
printf("第一行文本:%s\n",story1);
printf("第一行文本长度:%d\n",len1);
printf("第二行文本:%s\n",story2);
printf("第二行文本长度:%d\n",len2);
if (story1!=NULL)
{
free(story1);
story1=NULL;
}
if (story2!=NULL)
{
free(story2);
story2=NULL;
}
printf("%d\n",);
return ;
}
输出结果:

间接赋值的意义,实现了模块的功能划分,实现了软件作品的分层,使得模块接口和信息系统得以实现。
C语言二级指针间接赋值的更多相关文章
- C语言二级指针底层实现
C语言中,Pointers to Pointers,即二级指针. 一级指针和二级指针的值都是指向一个内存单元: 一级指针指向的内存单元存放的是源变量的值, 二级指针指向的内存单元存放的是一级指针的地址 ...
- C语言 二级指针内存模型②
//二级指针第二种内存模型 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #incl ...
- C语言 二级指针内存模型①
//二级指针第一种内存模型 #include<stdio.h> #include<stdlib.h> //说明:①:类似于int a[5]={0},数组名a是一维数组a中首元素 ...
- 真正明白C语言二级指针(转载)
指针是C语言的灵魂,我想对于一级指针大家应该都很熟悉,也经常用到:比如说对于字符串的处理,函数参数的“值,结果传递”等,对于二级指针或者多级指针,我想理解起来也是比较容易的,比如二级指针就是指向指针的 ...
- C语言二级指针(指向指针的指针)
转载:http://c.biancheng.net/cpp/html/85.html 指针可以指向一份普通类型的数据,例如 int.double.char 等,也可以指向一份指针类型的数据,例如 in ...
- 真正明白c语言二级指针
指针是C语言的灵魂,我想对于一级指针大家应该都很熟悉,也经常用到:比如说对于字符串的处理,函数参数的“值,结果传递”等,对于二级指针或者多级指针,我想理解起来也是比较容易的,比如二级指针就是指向指针的 ...
- C语言 二级指针内存模型混合实战
//二级指针内存模型混合实战 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #i ...
- C语言 二级指针内存模型③
//二级指针内存模型③ #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #incl ...
- c语言二级指针内存模型
第一种: 指针数组作为输入参数 char *myArray[] = {"aaaaaa", "ccccc", "bbbbbb", " ...
随机推荐
- Centos安装nodejs,并运行项目
不建议编译安装,对gcc要求比较高 安装nodejs yum install nodejs nodejs升级 npm i -g n --force n stable npm升级 npm install ...
- log4j测试示例
引入依赖 <!-- log4j --> <dependency> <groupId>log4j</groupId> <artifactId> ...
- xshell和Xftp连接虚拟机
首先连接虚拟机之前,先配置自己的IP地址,见博客https://www.cnblogs.com/xuzhaoyang/p/11264573.html xshell和Xftp下载请到官网http://w ...
- Docker简易安装及命令实例
docker ~ ~ ~ Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中, ...
- python模块知识四 包和logging日志
11.包 包:文件夹下具有__init__.py文件就是一个包,包用来管理多个模块 包的结构如下: bake ├── __init__.py ├── api ├── __init__.py ├── p ...
- Java找N个数中最小的K个数,PriorityQueue和Arrays.sort()两种实现方法
最近看到了 java.util.PriorityQueue.刚看到还没什么感觉,今天突然发现他可以用来找N个数中最小的K个数. 假设有如下 10 个整数. 5 2 0 1 4 8 6 9 7 3 怎么 ...
- MVC与MTV模型
MVC与MTV模型 MVC Web服务器开发领域里著名的MVC模式,所谓MVC就是把Web应用分为模型(M),控制器(C)和视图(V)三层,他们之间以一种插件式的.松耦合的方式连接在一起,模型负责业务 ...
- Fiddler代理手机抓包
Fiddler代理手机抓包 0. 安装Fiddler 1. 安装HTTPS证书并允许远程连接 Tools - Options 点击OK后重启Fiddler. 确保手机与当前电脑在同一局域网. 然后在手 ...
- jwt 0.9.0 系列目录
jwt官网地址:https://jwt.io/ PS: 写此系列的时候,jjwt jar包版本是0.9.0 <dependency> <groupId>io.jsonwe ...
- mabatis缓存
一级缓存 public static SqlSession getSqlSession() { String resource = "mybatis-config.xml"; In ...