// // 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; }
时间: 2024-11-15 08:47:38