指针

原创 2015年11月19日 21:22:57

//

//  main.m

//  day7

//

//  Created by dllo on 15/11/19.

//  Copyright © 2015 dllo. All rights reserved.

//


#import <Foundation/Foundation.h>


int main(int argc,const char * argv[]) {

   

    //1.有一字符串中包含数字与字符,请编程去除数字

    

    

//    

//    char str[]="he213llo1wo24rld123";

//    char *p=str;

//    

//    for(int i = 0;i<strlen(str);i++) {

//    

//            if ((*(p+i)<'0') || (*(p+i)>'9')){

//                printf("%c",p[i]);

//            }

//        

//            

//        }

    

//    

//    char str[]="he213llo1wo24rld123";

//    char *p=str;

//    int i =0;

//    while (*(p+i)!='\0') {

//    

//        if ((*(p+i)>='0') && (*(p+i)<='9')){

//            i++;

//        }else{

//            printf("%c",p[i]);

//            i++;

//        }

//        

//    }

//    printf("\n");

    

    

//    char str[10]={"ads13dd4s"};

//    char * p = str;                    //p指向a[0]

//    int k=0;                        //记录字符串中数字的个数

//    for (int i=0; i<9; i++) {

//        if (*p >= 58 || *p <= 47) {       //判断是不是字符,是字符则执行

//            if (k!=0) {

//                *(p-k)=*p;                 //将数字后的字符付给最前面的数字所在的位置

//                *p='\0';                   //将前移的字符所在的位置付成\0

//            }

//            p++;                           //指针前移

//        }else  if(47< *p && *p <58  ){

//            k++;

//            p++;                           //指针前移

//        }

//    }

//    printf("%s",str);

    

    

//    char str[] = "fd$^T88888881adf642sa45f";

//    for (int i = 0; i < strlen(str); i++) {

//        if (str[i] >= '0' && str[i] <= '9') {

//            str[i] = '0';

//        }

//        if (str[i] != '0') {

//            printf("%c",str[i]);

//        }

//    }

//    printf("\n");

    

    


    //2.20个随机数将其中最小的数与第一个数对换,把最大的数和最后一个数对换,指针实现

//    int arr[20]={};

//    int *p =arr;

//    int max =0,min=100,n1=0,n2=0;

//    for (int i = 0; i<20; i++) {

//        *(p+i)=arc4random()%(100-10+1)+10;

//        if (max<*(p+i)) {

//            max=*(p+i);

//            n1=i;

//        }else if(min>*(p+i)){

//            min=*(p+i);

//            n2=i;

//        }

//        

//    }

//    int temp1 =*(p+n1);

//    *(p+n1)=*(p+19);

//    *(p+19)=temp1;

//    int temp2 = *(p+n2);

//    *(p+n2) = *p;

//    *p = temp2;

//    for (int i = 0; i<20; i++) {

//        printf("%d ",p[i]);

//    }

//    

    

  

//    char a;

//    char *p;

//    int b;

//    int *q;

//    printf("%d\n",sizeof(a));//1

//    printf("%d\n",sizeof(p));//8

//    printf("%d\n",sizeof(b));//4

//    printf("%d\n",sizeof(q));//8

//    

    

//    int a = 3;

//    int b = 4;

//    int c = 0;

//    a++;

//    printf("%d\n",a);//4

//    c=a+++b+++b+a+++b++;

//    printf("%d\n",b);//6

//    printf("%d\n",c);//23

//    printf("%d\n",a);//6

    

//Sn=1-2+4-8+16-......+4096-.......

//    int Sn=0;

//    int a = 2;

//    int arr[20]={1,2};

//    for (int i= 2; i<5; i++) {

//        

//        a*=2;

//        arr[i]=a;

//        printf("%d ",arr[i]);

//    }

//    printf("\n");

//    for (int i = 0; i<5; i++) {

//        if (i%2!=0) {

//            Sn-=arr[i];

//        }else{

//            Sn+=arr[i];

//        }

//    }

//    printf("%d",Sn);

    

    

  //

    int arr[20]={};

    int max=0,min=100;

    int *p=NULL,*q=NULL;

    for (int i=0; i<20; i++) {

        arr[i]=arc4random()%(100-10+1)+10;

        printf("%d ",arr[i]);

        

        if (max<arr[i]) {

            max=arr[i];

            p=&arr[i];

        }else if (min>arr[i]){

            min=arr[i];

            q=&arr[i];

        }

        

    }

    int temp=arr[19];

    arr[19]=*p;

    *p=temp;

    

    temp=arr[0];

    arr[0]=*q;

    *q=temp;

    

    printf("\n");

    for (int i=0; i<20; i++) {

        printf("%d ",arr[i]);

    }

    

    


  

    

    

    

    

    

    

    

    

    

    

    return 0;

}


c++中指针问题一个很好的例子

偶尔在问题区看到这个问题,感觉有助于对指针问题理解,所以记录一下,希望给看到的你一些帮助。...
  • guwuchangtian
  • guwuchangtian
  • 2017年06月03日 11:52
  • 637

C++ 重载操作符之一(指针运算符*,->)

//重载指针运算符*,-> #include using namespace std; template class MyPtr { private: T * m_ptr; public: ...
  • u014338577
  • u014338577
  • 2015年09月06日 23:24
  • 2342

长指针

1. 16位Windows的产物  现在这已经是一个废弃的概念了——基本上。        早期16位计算机将内存中某段开始[?内存模式],寻址范围为2^16地址范围之内的指针叫做短指针,寻址范围...
  • fenxian2011
  • fenxian2011
  • 2014年02月13日 18:42
  • 469

行指针和列指针-专题分析(转至汪老师的C语言)

指针与多维数组(主要指二维数组)int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23}; 换个角度看世界:如首行一样,将首行视为一个元素,一个特殊的元素,这个“特殊的...
  • haussuden
  • haussuden
  • 2010年10月25日 22:33
  • 11871

c/c++中指针的理解(初学者)

关于指针,大家肯定不陌生,一些初学者,想必会出现思绪混乱的情况,现在我就来帮大家缕一缕吧。(第一次写微博 有点小紧张) 大家应该了解一些计算机对内存的管理方式吧。操作系统会将内存单元进行编号,这些...
  • Allen_ww
  • Allen_ww
  • 2016年01月11日 19:41
  • 9531

shared_ptr 共享指针 智能指针 简介

原文地址: http://euyuil.com/2344/ http://www.cnblogs.com/welkinwalker/archive/2011/10/20/2218804.htm...
  • u011866460
  • u011866460
  • 2014年12月19日 13:54
  • 1479

远指针,近指针,巨指针

预备知识: 这与CPU寻址有关。在16位机器下,地址线为20位。但CPU处理能力只有16位。于是访问内存的方案是分段。即基址(段)+偏址是逻辑地址,从中可计算物理地址。基址(段)有16位,偏址也1...
  • dazhi_100
  • dazhi_100
  • 2012年06月28日 14:45
  • 1272

关于指针的加减操作

原题:main() { int a[5]={1,2,3,4,5}; int *ptr=(int *)(&a+1); printf("%d,%d",*(a+1),*(ptr-...
  • u010193457
  • u010193457
  • 2015年08月19日 16:24
  • 3007

vector中指针问题

根据搜索内容总结如下: vector ::iterator iter=spvec.begin();// string* 代表什么意思? while(iter!=spvec.end()) { ...
  • u011089523
  • u011089523
  • 2016年08月27日 21:37
  • 898

深度长文教你彻底掌握C++/C指针

一.基础C++或者C里面最容易让人糊涂应该是指针了,不管是初学者甚至是有经验的童鞋有时候在用指针的时候也会出现一些很隐蔽的错误. 指针本身就是一个很绕的概念,而指针又能够和很多的结构比如数组(二维数...
  • xierhacker
  • xierhacker
  • 2016年09月13日 19:49
  • 8318
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:指针
举报原因:
原因补充:

(最多只允许输入30个字)