文档章节

第09天C语言(05):指针变量复用

lyh2017iOS
 lyh2017iOS
发布于 2017/07/05 09:57
字数 290
阅读 3
收藏 0
点赞 0
评论 0

#pragma mark 指针变量复用 ###pragma mark 概念

###pragma mark 代码

#include <stdio.h>
void change();
void change2(char *p);
void change3(int values[]);
void change4(int *p);
char *demo();
char *demo2();

int main()
{
#warning 
    
    /*
     只要是数据类型就具有3个特点
     1. 可以用来定义变量
     2. 可以用来作为形参和实参
     3. 作为返回值
     */
    
    /*
    int num = 10;
    change(num);
    printf("num  = %i\n",num);
    
//    char *name = "lyh"; // 指针指向一个字符串 那么这个字符串是一个常量 不可以修改
//    change2(name);
    
    int nums[] = {1,3,5};
//    change3(nums);          // 数组名就是数组的地址
    change4(nums);          // 数组名就是数组第0个元素的地址

    printf("nums[0] = %i\n",nums[0]);
     */
    
#warning 指针作为返回值
    
    char *name = demo();
    printf("name = %s\n",name);
    
    
    char *name2 = demo2();
    printf("name2 = %s\n",name2);
    
    return 0;
}
char *demo2()
{
    char name[] = "lyh"; // 存储在栈区 函数调用完会释放
    return name;
}

char *demo()
{
    char *name = "lyh"; // 存储在常量区 所以能打印出来
    return name;
}
// 专业
void change4(int *p)
// int *p \
== nums; \
== int*p == &nums; \
== int *p == &nums[0]
// int *p; p = nums; p == nums;
{
    p[0] = 998;
}
// 不专业
void change3(int values[])
{
    values[0] = 998;
}

/*
void change2(char *p)
{
    *p = "lys";     // 直接挂了
}
*/
void change(int value)
{
    value = 55;
}

© 著作权归作者所有

共有 人打赏支持
lyh2017iOS
粉丝 1
博文 357
码字总数 137380
作品 0
朝阳
[iOS]C语言知识点系列视频整理

C语言知识点系列视频 目录 C语言技术视频-01-变量的定义 C语言技术视频-02-程序分支结构(if...else) C语言技术视频-03-程序分支结构(switch) C语言技术视频-04-程序循环结构(while{}) C语言技...

浩浩老师
2015/10/13
38
0
C语言基础-05-指针

指针是C语言中非常重要的数据类型,如果你说C语言中除了指针,其他你都学得很好,那你干脆说没学过C语言。究竟什么是指针呢?我们先来看一个概念。 直接引用 1. 回想一下,之前我们是如何更改...

Corwien
2016/03/15
27
0
JNI之C语言简单回顾

一.C语言基本数据类型: c语言中 char, int, float, double, signed, unsigned, long, short and void // java 中的8大本数据类型和他们的长度 // byte 1 char 2 short 2 int 4 long 8 double......

长平狐
2012/09/03
60
0
智能指针的设计

智能指针是c++中一个很重要的概念,其实吧,如果c++设计得足够好,智能指针本不应该出现的,c++标准库的智能指针主要解决了两个问题,一个问题是内存释放问题,另一个问题是指针复用问题,也...

晨曦之光
2012/04/10
122
0
SWIG入门3: C/C++初级特性

众所周知,SWIG这个项目建立的原因,是为大家提供简洁而又自然的脚本语言接口。什么是简洁而自然呢?它的意思就是C/C++的函数就直接被封装为python的函数,class就被封装成python的class。 ...

costaxu
2012/08/11
0
2
C语言指针专题——常见问题解答合集

小伙伴们,对C语言编程有疑问的,可以加微信交流:poo_poo或者扫描我的头像,验证时请注明是“知友” 文末会推荐几本书,希望对有需要的朋友有帮助! 之前就C语言指针相关知识写过一个专题,...

石家的鱼
2017/06/17
0
0
指针的使用

1.指针与别名陷阱 如果有一块内存区域,指向这块内存区域的指针有多个,其中每一个指针都是其他指针的别名。 别名操作在优化程序是会造成很多麻烦,如下面的例子: 上面的两段代码,第一段访...

大道无名
2016/10/22
10
0
C语言基础-13-结构体

C语言的核心部分都说得七七八八了,相信大家已经对C语言的基本数据类型(charintfloat)、数组、指针都很熟悉了,今天来学习C语言中另外一种数据类型:结构体。在iOS开发中,结构体是经常用到的...

Corwien
2016/03/16
10
0
C语言数组与指针一本道来

数组与指针.png 一本道来其他系列 C语言关键字 C语言注释符号一本道来 C语言编译预处理技术一本道来 指针的基础 注意本节内容可能在gcc下不能完成编译,请切换到Windows平台,使用或其他 指针...

PcDack
2017/12/04
0
0
关于c语言等于运算符的一点思考

前言 前些天发表了一篇博文关于c语言内存地址对齐的一点思考,引起了大家比较热烈的讨论,的确在这篇文章中示例的选择不是很恰当,示例有很多不严谨的地方,博客的评论中得到了很多同学的指点...

算法与编程之美
2013/10/13
0
2

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Scala Configuration 相关API

Play使用了 Typesafe config library,但是也提供了一个有着更多Scala高级特性的的 Configuration 封装。不熟悉Typesafe配置的开发者可以移步 configuration文件的语法和特性文档。 读取配置...

Landas
今天
1
0
使用cookie技术 记住账号

1. 效果 2. 实现过程 2.1 前端 将用户的选中传递给后台 这个参数的获取是 参考:https://my.oschina.net/springMVCAndspring/blog/1860498 // var rememberLogin = $("#rememberLoginId").i...

Lucky_Me
今天
1
0
《趣谈网络协议》02之网络分层的真实含义

一、提出问题 1.提出问题 当你听到什么二层设备、三层设备、四层 LB 和七层 LB 中层的时候,是否有点一头雾水,不知道这些所谓的层,对应的各种协议具体要做什么“工作”? 2.这四个问题你弄...

aibinxiao
今天
2
0
Python3学习日志二 Python中的集合set和字典dict

1.集合set 定义一个集合set 我们可以看到定义集合set有两种不同的形式,如果要定义一个空的集合set不能用{}而是要用set();另外,集合是无序的,而且set中的元素是不可重复的,如果你定义了一...

Mr_bullshit
今天
0
0
adb 操作指令详解

ADB,即 Android Debug Bridge,它是 Android 开发/测试人员不可替代的强大工具,也是 Android 设备玩家的好玩具。 注:有部分命令的支持情况可能与 Android 系统版本及定制 ROM 的实现有关。...

孟飞阳
今天
0
0
nodejs安装以及环境配置(很好的node安装和配置文章,少走很多弯路)

一、安装环境 1、本机系统:Windows 10 Pro(64位) 2、Node.js:v6.9.2LTS(64位) 二、安装Node.js步骤 1、下载对应你系统的Node.js版本:https://nodejs.org/en/download/ 2、选安装目录进...

sprouting
今天
1
0
Redisson

了解了Redisson,发现使用挺简单的,接下来准备深入学习一下。 Redisson介绍 Redisson是架设于Redis基础之上的一个Java驻内存数据网格(In-Memory Data Grid) Redisson在基于NIO的Netty框架上...

to_ln
今天
0
0
python有哪些好玩的应用实现,用python爬虫做一个二维码生成器

python爬虫不止可以批量下载数据,还可以有很多有趣的应用,之前也发过很多,比如天气预报实时查询、cmd版的实时翻译、快速浏览论坛热门帖等等,这些都可以算是爬虫的另一个应用方向! 今天给...

python玩家
今天
0
0
python爬虫日志(3)-爬去异步加载网页

在浏览器检查元素页面中,选取Network中的XHR选项即可观察每次加载页面,网页发出的请求,观察url的规律即可利用封装的函数对每一页进行爬取。

茫羽行
今天
0
0
Python数据分析numpy基础-维度的认识

什么是多维数组? 核心对象是同型的多维数组(简单理解就是一个表格,通常内容都是些数字),具有相同的数据类型。 概念: 1. axes(轴):数组的维度统称为轴。 2. rank:轴的数量称为rank。...

十年磨一剑3344
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部