标签:内存 变化 stdio.h 版权 定义 目录 view include art
版权声明:本文出自阿钟的博客,转载请注明出处:http://blog.csdn.net/a_zhon/。
简单来说: 指针就是内存地址 内存地址就是指针。来看个小案例
#include<stdio.h>
#include<stdlib.h>
/**
  指针就是内存地址
  内存地址就是指针
 */
main() {
    //定义一个int类型的变量i,并且赋值为10
    int i=10;
    //定义一个int类型的一级指针变量p
    int* p;
    //把i对应的地址给p变量 
    p=&i;
    //指针取值*p:把p变量地址对应的值取出来
    printf("*p=%d\n",*p);
    //打印地址值
    printf("p的地址值%#x\n",p); 
    system("pause");
}#include<stdio.h>
#include<stdlib.h>
main() {
    int i=100;
    //p就是我们的指针变量,存放地址值
    int *p=&i;
    printf("i值修改之前,p的地址值是%#x\n",p);
    i=200;
    printf("i值修改之后,p的地址值是%#x\n",p);
}#include<stdio.h>
#include<stdlib.h>
main() {
    int i=100;
    int *p=&i;
    printf("p值修改之前,i的值是%d\n",i);
    int j=200;
    p=&j;
    printf("p值修改之后,i的值是%d\n",i);
}#include<stdio.h>
#include<stdlib.h>
main() {
    int i=100;
    int *p=&i;
    printf("i值修改之前,*p的值是%d\n",*p);
    i=200;
    printf("i值修改之后,*p的值是%d\n",*p);
}#include<stdio.h>
#include<stdlib.h>
main() {
    int i=100;
    int *p=&i;
    printf("*p值修改之前,i的值是%d\n",i);
    *p= 200;
    printf("*p值修改之后,i的值是%d\n",i);
}1.第一种:使用中间变量来互换,这一种也是我们最常用的一种方法
#include<stdio.h>
#include<stdlib.h>
/**
    互换两个数
 */
main() {
    int a = 100;
    int b = 150;
    //通过一个中间变量来互换
    int temp = a;
    a = b;
    b = temp; 
    printf("a的值:%d\n",a);
    printf("b的值:%d\n",b);
    system("pause");
}2.第二种:我们知道C语言是可以直接操作内存的,所以我们可以直接来改变a,b两个的内存地址指向的值。
#include<stdio.h>
#include<stdlib.h>
/**
    互换两个数
 */
//通过互换两个数的地址值,来互换数字
void changeAdress(int* a,int* b) {
    //temp取的是指针变量a对应的内存地址的值也就是100
    int temp = *a;
    //把a对应内存地址的值 修改为b对应内存地址的值
    *a = *b;
    //把b对应内存地址的值 修改为temp
    *b = temp;
}
main() {
    int a = 100;
    int b = 150;
    //分别将取a,b的地址
    changeAdress(&a,&b);
    printf("a的值:%d\n",a);
    printf("b的值:%d\n",b);
    system("pause");
}#include<stdio.h>
#include<stdlib.h>
/**
    函数返回多个值
    通过修改指针变量引用的值,达到返回多个值的效果。
 */
void close(int* a,int* b) {
    *a=0;
    *b=0;
}
main() {
    int a=1;
    int b=1;
    //调用函数 
    close(&a,&b);
    printf("a=%d\n",a);
    printf("b=%d\n",b);
    //是docs窗口停留
    system("pause");
}Android JNI编程(三)——C语言指针的初步认识、指针变量、互换两个数、函数返回多个值
标签:内存 变化 stdio.h 版权 定义 目录 view include art
原文地址:http://www.cnblogs.com/Free-Thinker/p/6169313.html