码迷,mamicode.com
首页 > 编程语言 > 详细

c++之指针练习

时间:2015-03-04 20:59:18      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:

 1 #include <iostream>
 2 
 3 using namespace std;
 4 
 5 //要通过函数调用来改变主调函数中某个变量的值:
 6 //(1) 在主调函数中,将该变量的地址或者指向该变量的指针作为实参
 7 //(2) 在被调函数中,用指针类型形参接受该变量的地址 
 8 //(3) 在被调函数中,改变形参所指向变量的值
 9 void swap2(int* x,int* y){
10     int t;
11      t = *x;
12     *x = *y;
13     *y = t;
14 }
15 
16 //找出一个数组内的最大数
17 //先声明一个指针变量,并让他指向数组首元素的地址
18 //使用for循环让指针指向的数与数组中的每一个数进行比较
19 //每比较一次就让指针指向比较后的最大数
20 //最后就指向数组中最大树的指针返回去
21 int* swap1(int* a,int len){
22     int* t = a;
23     for(int i = 1;i < len;i ++){
24         if(*t<*(a + i)){
25             t = a + i;
26         }
27     }
28     return t;
29 }
30 
31 //使用指针的加法运算将一个数组内的所有元素相加,并就结果返回
32 //声明一个指针变量,并使其指向数组a的首元素地址
33 //使用指针遍历数组内的所有元素,并加到变量sum中,最后int类型的值将其返回
34 int swap3(int* a,int len){
35     int* p = a;
36     int sum = 0;
37     for(int i = 0;i<5;i++){
38         //指针的加法运算,指针变量每加一次1,指针就会向后移动该指针类型所占的字节数
39         //也就是说,指针变量每加一次1,指针就会指向数组的下一个元素
40         sum += *p ++;
41     }
42     return sum;
43 }
44 
45 //使用冒泡法将数组的元素排序
46 void swap4(int* array,int len){
47     int temp = 0;
48     for(int i = 1;i < len;i ++){
49         for(int j = 0;j<len - i;j ++){
50             if(array[j]>array[j+1]){
51                 temp = array[j];
52                 array[j] = array[j+1];
53                 array[j+1] = temp;
54             }
55         }
56     }
57 }
58 
59 void main(){
60     //计算数组之和
61     int a[] = {1,2,3,4,5};
62     int aSize = sizeof(a)/sizeof(int);
63     int sum = swap3(a,aSize);
64     cout << "数组a的所有元素之和是:" << sum << endl;
65 
66     //计算数组中的最大数
67     int b[] = {2,5,67,25,4,7};
68     int bSize = sizeof(b)/sizeof(int);
69     int* t = swap1(b,bSize);
70     cout << "数组a的所有元素的最大数是:" << *t << endl;
71 
72     //交换两个变量的值
73     int x = 1, y = 2;
74     int *pa = &x, *pb = &y;
75     cout << "x="<<x<<";y="<<y<<endl;
76     swap2(pa,pb);
77     cout << "After calling swap2:" << "\n" << "x="<<x<<";y="<<y<<endl;
78 
79     //数组排序
80     int array[5];
81     cout << "请输入5个整数" << endl;
82     for(int i = 0;i<5;i++){
83         cin >> array[i];
84     }
85     cout << "排序前:";
86     for(int i = 0; i < 5 ; i ++){
87         cout << array[i] << "\t" ;
88     }
89     swap4(array,5);
90     cout << "\n排序后:";
91     for(int i = 0; i < 5 ; i ++){
92         cout << array[i] << "\t" ;
93     }
94 }

 

c++之指针练习

标签:

原文地址:http://www.cnblogs.com/Smart-Du/p/4314184.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!