09C语言指针

C语言指针


 地址

地址就是数据元素在内存中的位置表示;

&变量名

#include <stdio.h>
int main(){
         int aa;
         unsigned int bb = &aa;
         printf("%d\n",bb);
         return 0; 
}
#include <stdio.h>
int main(){
    char CharArr[50];
    unsigned int add = &CharArr[25];
    printf("%d\n",add);
    return 0;
} 

指针

概念

地址表示一个位置,指针指向这个地址表示的位置;指针是一个变量,它存储的是另一个变量的地址,地址运算符&与间接运算符*被放置在变量的前面时,地址运算符返回该变量的地址;被放置在指针的前面时,间接运算符返回该指针指向变量的内容。

指针变量的定义与使用
#include <stdio.h>
int main(){
    int aa;
    int *address;
    address = &aa;
    printf("%d\n",address);
    return 0; 
}
#include <stdio.h>
int main(){
    char CharArr[50];
    unsigned int add = &CharArr[25];
    printf("%d\n",add);
    int *aa;
    aa = &CharArr[25];
    printf("%d\n",aa);
    return 0;
} 
void指针

空指针或无类型指针

#include <stdio.h>
int main(){
    int aa;float bb;char cc;void *address;
    address = &aa; printf("%d\n",address);
    address = &bb; printf("%d\n",address);
    address = &cc; printf("%d\n",address);
    return 0; 
}
#include <stdio.h>
int main(){
    int aa;float bb;double cc;char dd;
    int ee;float ff;double gg;char hh;
    int *AA;float *BB;double *CC;char *DD;
    void *EE,*FF,*GG,*HH;
    AA = &aa;BB = &bb;CC = &cc;DD = &dd;
    EE = &ee;FF = &ff;GG = &gg;HH = &hh;
    printf("%d\n",AA);
    printf("%d\n",BB);
    printf("%d\n",CC);
    printf("%d\n",DD);
    printf("%d\n",EE);
    printf("%d\n",FF);
    printf("%d\n",GG);
    printf("%d\n",HH) ;
    return 0;
}

指针运算

取指针元素
#include <stdio.h>
int main(){
    int aa = 10;
    int *AA;
    AA = &aa;
    printf("%d\n",aa);
    printf("%d\n",&aa);
    printf("%d\n",*AA);
    return 0;
}
#include <stdio.h>
int main(){
    int aa = 1;int *address;int values;
    address = &aa; printf("%d\n",address);
    values = *address; printf("%d\n",values);
    return 0; 
}
指针的自增自减

 

指针与数组

 数组名也是指针即数组元素的第一个元素的地址;

指针与字符

#include <stdio.h>
int main(){
    char character = 'c';
    char *c_add;
    c_add = &character;
    printf("%c\n",character);
    printf("%d\n",&character);
    printf("%c\n",*c_add);
    return 0;
}

 指针与字符串

#include <stdio.h>
int main(){
    //
    char CharArr[10] = "abcdefghij";
    char *str_add;
    str_add = CharArr;
    int i;
    for(i=0;i<10;i++,str_add++){
        printf("%d %d %c\n",i,str_add,*str_add);
    }
    return 0;
}

 

转载于:https://www.cnblogs.com/Aha-Best/p/10911332.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值