标签:
//
// main.c
// C语言-指针
//
// Created by cgq on 15/4/9.
// Copyright (c) 2015年 cgq. All rights reserved.
//
#include <stdio.h>
//直接引用
void test()
{
//通过变量名a找到内存里的地址,然后再将10以2进制的形式放入变量a的存储控件
int a;
a = 10;
// 变量 地址 存储的内容
// a -> ffc1 0000 1010
}
//间接引用
void test2()
{
//将变量a的地址存放在另一个变量中,然后通过变量b来间接引用变量a,间接读写变量a的值
char a;
char *b; // 这里的*b只是声明这是一个指针,
//让指针变量b指向变量a
b = &a;
*b = 10;//这里的*b代表访问b中存储的地址对应的存储空间
// 变量 地址 存储的内容
// a ffc1 0000 1010(*b)
// b ffc2 ffc1
printf("a=%d\n",a);
a = 11;
printf("a赋值后=%d\n",*b); //*b代表取出变量a储存的值
}
//指针的使用
void swap(int *a1,int *a2)//按值传递和按引用传递的区别,按值传递不会修改原来的值的大小
{
//交换a1和a2的值
int temp;
temp = *a1;
*a1 = *a2;
*a2= temp;
}
//同时获得a和b的加和减法操作结果,类似于out
void jiaAndjian(int a,int b,int *sum,int *minus)
{
*sum=a+b;
*minus = a-b;
}
int main(int argc, const char * argv[]) {
// insert code here...
int a = 10;
int b = 20;
swap(&a,&b);
printf("a=%d\nb=%d\n",a,b);
int sum;
int minus;
jiaAndjian(a,b,&sum,&minus);
printf("a+b=%d\na-b=%d\n",sum,minus);
return 0;
}
标签:
原文地址:http://www.cnblogs.com/chenlei0/p/4410276.html