#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. easyui源码翻译1.32--Calendar(日历)

    前言 前几天加班比较忙 未能及时更新翻译的 今天多发布几篇..下载该插件翻译源码 日历控件显示一个月的日历,允许用户选择日期和移动到下一个或上一个月.默认情况下,一周的第一天是周日.它可以通过设置'f ...

  2. 解读分库分表中间件Sharding-JDBC

    [编者按]数据库分库分表从互联网时代开启至今,一直是热门话题.在NoSQL横行的今天,关系型数据库凭借其稳定.查询灵活.兼容等特性,仍被大多数公司作为首选数据库.因此,合理采用分库分表技术应对海量数据 ...

  3. 我的Photoshop第一个作品

    想学Photoshop好久了, 作为一个想成为"将计算机技术和艺术结合起来的人", 不会Photoshop感觉说不过去. 先选了一个图尝试做, 结果发现太难了. 我给背景上色, 画 ...

  4. C++中为什么要用虚函数、指针或引用才能实现多态?

    原文链接:http://blog.csdn.net/zoopang/article/details/14071779 学过C++的都知道,要实现C++的多态性必须要用到虚函数,并且还要使用引用或者指针 ...

  5. [译]GotW #5:Overriding Virtual Functions

       虚函数是一个很基本的特性,但是它们偶尔会隐藏在很微妙的地方,然后等着你.如果你能回答下面的问题,那么你已经完全了解了它,你不太能浪费太多时间去调试类似下面的问题. Problem JG Ques ...

  6. IOS开发中单例模式使用详解

    第一.基本概念 单例模式是一种常用的软件设计模式.在它的核心结构中只包含一个被称为单例类的特殊类.通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问. 第二.在IOS中使用单例模式的情 ...

  7. 【HDOJ】4057 Rescue the Rabbit

    挺有意思的一道题目,解法是AC自动机+DP.AC自动机建立fail指针时,一定要注意结点的属性也需要传递.AC自动机结合了trie和kmp的优点.需要注意的是,每个模式串仅计算一次,否则这题很难解. ...

  8. 【HDOJ】1203 I NEED A OFFER!

    DP问题. #include <stdio.h> #define MAXNUM 10002 int main() { int m, n; int cost[MAXNUM]; // the ...

  9. Oracle系列之异常处理

    涉及到表的处理请参看原表结构与数据  Oracle建表插数据等等 使用select into语句读取tb_Employee的一行,使用异常处理处理no_data_found和two_many_rows ...

  10. MySQL purge log简单吗

    MySQL purge log简单吗? 简单: purge log的功能很简单,purge master logs to 指定一个binlog,然后删除之前的文件系统上的binlog文件,并更新bin ...