C語言學習筆記之指針

指針是C語言的重點與難點,利用指針可以實現存儲空間的動態分配,減少空間上的浪費。
指針變量是一種特殊類型的變量,它裏面存儲的就是內存的地址。
1、指針的定義格式:類型標識符 *標識符
eg:float *pointer_1;
ps1:一個指針變量只能指向同一類型的變量。
2、指針變量的初始化
一般形式:[存儲類型] 數據類型 *指針名=初始地址值
eg:int *p1=&a;
3、指針變量必須先賦值,在使用。
4、當函數返回值爲指針型數據時,這種函數稱爲指針型函數,簡稱指針函數。
定義格式如下:數據類型 *函數名(形參表)
5、二級指針簡單理解就是指針的指針,經一個指針變量的地址再送給一個新的指針變量,則這個新指針變量相對前一個指針所指的變量,就形成一個二級指針。如下程序段:

int i;
int *p;
int **p;
p=&i;
pp=&p;

綜合例子:

#include"stdio.h"
#define nmax 50
int main()
{
    int i,k,m,n,num[nmax],*p;
    printf("\n please input the tatal of number:");
    scanf("%d",&n);
    p=num;
    for(i=0;i<n;i++)
        *(p+i)=i+1;
    i=k=m=0;
    while(m<n-1)
    {
        if(*(p+i)!=0)
        k++;
    if(k==3)
    {
        *(p+i)=0;
        k=0;
        m++;
    }
    i++;
    if(i==n)
        i=0;   
     }
     while(*p==0) 
         p++;
     printf("%d is left\n",*p);
     return 0;

}

運行結果:
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章