iOS指標第一天

來源:互聯網
上載者:User

標籤:

////  main.m//  LessionPointer////  Created by laouhn on 15/7/24.//  Copyright (c) 2015年 池海濤. All rights reserved.//#import <Foundation/Foundation.h>void jiaohuan(int *a,int *b){    *a = *a^*b;    *b = *a^*b;    *a = *a^*b;}int main(int argc, const char * argv[]) {    //指標變數 :儲存地址的變數    /**     *  指標定義時,資料類型的作用,告訴系統我是一個什麼類型的指標        //指標變數定義時,資料類型的作用(以 int 為例)          1.告訴系統我是一個 int 類型的指標          2.在指標運算是,每次位移的位元組數 int -4 個位元組          3.指標控制的位元組數,int 控制 4 個位元組          */    /**     int a = 10;     int *p = NULL;//指標變數p     char *q = NULL; //指標q 的資料類型是: char *;     //平時我們所說的指標,其實就是指標變數,指標中儲存的是地址          //指標變數中地址的輸出     printf("%p\n", p);     //指標變數所佔位元組數:只與系統作業系統位元有關,32作業系統 4個位元組,64位作業系統8個位元組     printf("p = %lu\n", sizeof(p));     printf("q = %lu\n", sizeof(q));          //取址運算子: &     p = &a;     printf("%p\n",p);     printf("%p\n", &a);     //取值運算子 *     //printf("%d\n",*p);                    //指標變數的賦值:指標重指向,就是對指標變數重新複製的過程.          //指標運算:只有加減運算.     printf("%d\n",*(p+1));     printf("%p\n",p+1);          printf("q+1之後輸出的結果%d\n",*(q + 1));     *///    int a = 10;//    int *p = &a;//    *p = 30;//    //*p 在等號左側是,是對p中儲存的地址進行賦值操作,否則是取值操作//    //int *p = NULL;在定義時*p的作用 高數系統定義的是指標變數.//    printf("%d\n", a);    //指標與數組    /**     *            int a[] = {9, 5, 2, 7};     //數組名是數組首地址,但是數組名是一個常量地址     printf("%p\n",a);          printf("%p\n",&a[0]);                    int *p = a;          printf("%d\n",*p);     //指標位移給指標類型有關     printf("%d\n", *(p + 1));          printf("%d\n",p[1]);          printf("%d\n", *(p + 1 + 1));          printf("%d\n", *(p + 1 + 1 + 1));               printf("%d\n",*a);     printf("%d\n", *(a+1));     printf("%-----d\n",a[1]);          int b[] = {3, 8, 4, 9};     p = b;//指標重指向     //a = b;a是一個常量,不能被賦值,而指標式一個變數,可以重指向(重新賦值).     //數群組類型,與指標類型不符,會出現什麼問題?          int b[] = {256, 5, 2, 7};     int *p = b;     for (int i = 0; i < 4; i++) {     printf("%d", *(p + i));     }          //printf("%d\n",*(q + 1));          char str[] = "iPhone";     char *p = str;     //通過指標輸出字串     printf("%s\n",p);     //把h 改成 H,直接通過地址對裡面的值進行修改    是取值運算子     *(p + 2) -= 32;     printf("%s\n", p);          //此種情況,q中儲存的是,常量區的地址,而常量區的內容,不允許被修改.切記!!???(alt shift +k)     char *q = "iPhone";     (q + 2) = ‘H‘;          printf("q 的地址 %p\n",q);               //通過指標計算字串的長度.     char str[] = "iPhone";     int i =0;     char *p = str;     while (*(p + i) != 0 ) {     i++;     }     printf("%d",i);          */    //字串數組    //char strArray[][20] = {"iPhone", "iPod", "iPad", "iWatch"};      //  printf("%s\n",strArray[0]);    //指標數組,裡面存得是地址//    char *str[] = {"iPhone", "iPod", "iPad", "iWatch"};//    //    printf("++++%lu",sizeof(str));//    for (int i = 0; i < 4 ; i++) {//        //printf("%p ",str[i]);//        printf("%s ",str[i]);//    }//    printf("\n");    //printf("%p\n",&str[0]);    //char p[]  = "ddddd";    //將上述指標數組,升序排序    //str[0]  儲存的是iPhone的首地址    //str[1]  存的是iPod 的首地址    //str[2] 存的是ipad 的首地址    //str[3] 存的是iWatch的首地址    /**     *            for (int i = 0; i < 4 -1; i++) {     for (int j = 0; j < 4 - 1 -i; j++) {     if ( strcmp(str[j],str[j+1])>0) {          // *(p + 2) p[2]     //比較的是 內容,交換的是數組中的地址的位置     char *temp =str[j];     str[j] = str[j + 1];     str[j + 1] = temp;     }          }     }          for (int i = 0; i < 4; i++) {     //printf("%p ",str[i]); //輸出數組中的元素     printf("%s ",str[i]);//輸出數組元素,對應地址上的內容     }     //字串數組     char str[4][20] = {"iPhone", "iPod", "iPad", "iWatch"};          //指標數組,該指標數組儲存的是棧區空間地址     char *strArray[4] = {str[0], str[1], str[2], str[3]};     for (int i = 0; i < 4;i++) {     printf("%p ", strArray[i]);     }     printf("\n");      //指標數組,該指標數組儲存的是常量空間的地址       char *str1[4] = {"iPhone", "iPod", "iPad", "iWatch"};    for (int i = 0; i < 4;i++) {        printf("%p ", str1[i]);    }     */    //指標與函數    int a = 5;    int b = 6;    jiaohuan(&a,&b);    printf("a=%d,b=%d",a,b);    return 0;}

 

iOS指標第一天

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.