#include <stdio.h>
#include <stdlib.h>
//指针就是内存地址
//32为操作系统最大是4G内存,32为系统则是2的32次方,
//所以只能表示2的32次方个内存地址, 也就是2的32次方个字节就是4G.
main(){
int i;//i是内存空间的别名 ,i里面保存的是内存地址,
i = ;
printf("%#x\n", &i);
system("pause");
}
#include <stdio.h>
#include <stdlib.h> main(){
//野指针:没有赋值的指针
int* p;
int i;
double d = 3.14;
p = &d; //不是野指针了,
//*p = 23;
printf("%#x\n", p);//打印地址,p里面存的是地址
printf("%lf\n", *p);
system("pause");
} /*##*的三种用法
1. 乘法
2. int* p:定义一个指针变量p,p中存放一个内存地址,这个地址所存放的数据规定是int型
3. *p:取出p中保存的内存地址存放的数据 ##数据传递
* 所有语言所有平台,都只有值传递,引用传递传递的值是内存地址
*/ #include <stdio.h>
#include <stdlib.h>
void swap(int* p, int* q){
int temp = *p;
*p = *q;
*q = temp;
}
main(){
int i = ;
int j = ;
printf("i=%d\n", i);
printf("j=%d\n", j);
swap(&i, &j);
printf("i=%d\n", i);
printf("j=%d\n", j);
system("pause");
}
#include <stdio.h>
#include <stdlib.h>
void function(int* p, int* q){
*p += ;
*q += ;
}
main(){
int i = ;
int j = ;
function(&i, &j);
printf("%d\n", i);
printf("%d\n", j);
system("pause");
} #include <stdio.h>
#include <stdlib.h>
void function(int** p){
int i = ;
printf("i的地址为%#x\n", &i);
//p就是取出p内存空间的值
//*p:就是取出p内存空间值的内存空间的值,
*p = &i;//修改P所指向的内存空间值的内存空间的值
}
main(){
int* mainp;//mainp在栈中存的是地址,指向堆中的一个int数据 的内存空间 。
function(&mainp);//&mainp在栈中存的是地址的地址也就是 mainp的地址,也就是指向mainp的内存空间。
printf("主函数中获取i的地址为%#x\n", mainp); //数据幻影
printf("主函数中获取i的值为%d\n", *mainp);//-2因为i是局部变量已经销毁了
system("pause");
}

                                                            

内存分析:0级指针,一级指针,二级指针都有,                   二级指针是曾曾用名,一级指针是曾用名。

#include <stdio.h>
#include <stdlib.h> main(){
//char arr[] = "hello";
int arr[] = {,,,,}; printf("%#x\n", &arr[]);//0x22ff50
printf("%#x\n", &arr[]);
printf("%#x\n", &arr[]);
printf("%#x\n", &arr[]);
//arr =
printf("数组名字的地址%#x\n", &arr);//也是输出第0个元素的地址
printf("数组名字的地址%#x\n", arr);//也是输出第0个元素的地址
//char* p = &arr;
int* p = &arr;
//+1表示向右偏移一个单位
printf("%d\n", *(p+));//
printf("%d\n", *(p+));//
printf("%d\n", *(p+));//
printf("%d\n", (p+)-p); //
system("pause");
}
#include <stdio.h>
#include <stdlib.h> main(){
char* cp;
int* ip;
short* lizhip;
int i;
char c;
cp = &c;
ip = &i;
//指针的长度都是4个字节
printf("%d\n", sizeof(cp));//
printf("%d\n", sizeof(ip));//
printf("%d\n", sizeof(lizhip));//
printf("%d\n", (p+)-p); //2,偏移量。
printf("%d\n", cp-ip);//出错, 连续内存空间相加减是可以的,非连续的内存空间相加减是没有意义的,
system("pause");
}

android107 指针入门的更多相关文章

  1. C语言指针入门知识

    C语言指针往往是C语言学习过程中最困难的地方, 最近重新理解了一下C语言的指针知识, 在此整理一下, 如果有错误请留言指正. 对于刚入门的人来说, 指针涉及方方面面, 从简单的数组到结构体, 都会用到 ...

  2. 转载 c++指针 指针入门

    这是一篇我所见过的关于指针的最好的入门级文章,它可使初学者在很短的时间内掌握复杂的指针操作.虽然,现在的Java.C#等语言已经取消了指针,但作为一个C++程序员,指针的直接操作内存,在数据操作方面有 ...

  3. C语言指针入门

    指针指包含地址 声明指针: int num:声明整数 int *num:声明指针,下面的声明也是等价的,空格的使用指示个人爱好 int* num; int  *  num; int  *num; in ...

  4. C学习笔记(3)---作用域,数组, (少量指针入门)

    1. 作用域(scope):任何一种编程中,作用域是程序中定义的变量所存在的区域,超过该区域变量就不能被访问.C 语言中有三个地方可以声明变量. a. 在函数或块内部的局部变量 - 在某个函数或块的内 ...

  5. 取地址与解引用 C指针浅析

    C语言指针入门需要掌握的两个概念就是取地址&和解引用*,下面我们按例子来理解这两个符号的使用. int main() { int a = 0; int* pa = &a;//取地址操作 ...

  6. 推荐一些不错的计算机书籍(php c mysql linux等等)

    推荐一些不错的计算机书籍. # PHP<PHP程序设计>(第2版)  --PHP语法和入门最好的书<PHP5权威编程>  --PHP入门后升级书<深入PHP:面向对象.模 ...

  7. 一个很不错的适合PHPER们书单,推荐给大家【转】

    来我博客的访客们中,有一些是PHP的初学者,是不是很迷茫PHP应该怎么学?应该买什么样的书?到处问人,到处求助?这下好了. 正好看到黑夜路人在博客上推荐了一个书单,看上去都非常不错,很多我也没有读过, ...

  8. 一个PHP书单 -摘自网络

    # PHP <PHP程序设计>(第2版) –PHP语法和入门最好的书 <PHP5权威编程> –PHP入门后升级书 <深入PHP:面向对象.模式与实践>(第3版) – ...

  9. ACM学习<一>

    c++指针|指针入门 什么是指针? 其实指针就像是其它变量一样,所不同的是一般的变量包含的是实际的真实的数据,而指针是一个指示器,它告诉程序在内存的哪块区域可以找到数据.这是一个非常重要的概念,有很多 ...

随机推荐

  1. netsh命令

    C:\Windows\System32>netsh interface ipv6 show address level=verbose 地址 ::1 参数-------------------- ...

  2. 利用switch case判断是今天的第多少天

    static void Main(string[] args)        {            while (true)            {                int m1 ...

  3. VM8下安装Mac OS X 10.7

    下载Mac OS X  10.7 安装包http://115.com/file/clj1iu8m#            下载HJMac http://115.com/file/cljyu1rh#   ...

  4. sql点滴39—解决数据库日志文件过大的问题

    随着数据库使用时间增长,日志文件也在不停的增大,这里介绍几种方法减小这个文件的方法. 1.直接删除log文件(一般不建议) 分离数据库.分离数据库之前一定要做好数据库的全备份,选择数据库——右键——任 ...

  5. [liu yanling]软件开发的过程按阶段划分有:单元测试 集成测试 系统测试 验收测试

    从软件开发的过程按阶段划分有:单元测试 集成测试 系统测试 验收测试测试过程按 4 个步骤进行,概念内容如下:单元测试:单元测试是对软件基本组成单元(如函数.类的方法等)进行的测试.集成测试:集成测试 ...

  6. 《Data-Intensive Text Processing with mapReduce》读书笔记之二:mapreduce编程、框架及运行

    搜狐视频的屌丝男士第二季大结局了,惊现波多野老师,怀揣着无比鸡冻的心情啊,可惜随着剧情的推进发展,并没有出现期待中的屌丝奇遇,大鹏还是没敢冲破尺度的界线.想百度些种子吧,又不想让电脑留下污点证据,要知 ...

  7. Tsinsen A1516. fx 数位dp

    题目: http://www.tsinsen.com/A1516 A1516. fx 时间限制:2.0s   内存限制:256.0MB    总提交次数:164   AC次数:72   平均分:51. ...

  8. HDOJ-ACM1015(JAVA) 运用 组合、全排列实现

    转载声明:原文转自:http://www.cnblogs.com/xiezie/p/5573934.html 这个题目的题意:(自己结合百度翻译,简单的翻译了一下) “这个项目是在一个在二楼图书馆一幅 ...

  9. HDU5627--Clarke and MST (bfs+位运算)

    http://www.cnblogs.com/wenruo/p/5188495.html Clarke and MST Time Limit: 2000/1000 MS (Java/Others) M ...

  10. storm-starter项目概述

    storm-starter项目包含使用storm的各种各样的例子.项目托管在GitHub上面,其网址为: http://github.com/nathanmarz/storm-starter stor ...