c语言指针基本使用

<pre name="code" class="java">//
//  main.c
//  c指针
//
//  Created by stevenchang on 9/4/15.
//  Copyright (c) 2015 cz. All rights reserved.
//

#include <stdio.h>

int main(int argc, const char * argv[]) {
    // insert code here...
//    printf("Hello, World!\n");
    /**
     指针的定义:指针是指向地址的,不能指向其他。
     
     */
    int a = 100;    //定义一个基础数据类型为int的变量a,初始值为100
    int *p;      //定义一个指针变量p,其中*是没有任何意义的,只是表明这是一个指针类型的变量
    p = &a;     //将a的地址赋给指针变量p
    *p = 80;    //通过指针变量p改变a的值,这里的*代表的是指针标示符;*p代表a的存储空间,*p=80即为修改a变量的存储空间值
    
    printf("%d=%d\n", a, *p);
    
    printf("=======================\n");
    char c = 'A';    //定义一个基础数据类型为char的变量c,初始值为A
    char *cp = &c;    //直接将指针变量cp指向变量c
    *cp = 'B';    //通过指针变量cp来修改c的值
    printf("%c=%c\n", c, *cp);
    
    /**
     使用注意点: 
        int *p;这是一个int类型的指针变量,不要将其直线其他类型,float,double.....这样有可能造成严重的后果
     
        在未给指针变量p初始化的时候,禁止使用*p.因为这时候p指向的地址是不确定的,后果严重
     */
    
    
    printf("==============指向指针的指针(二级指针)==============\n");
    /**
     指向指针的指针其实也很简单,只要记住一点,指针只指向地址,通过地址来操作存储空间中的数据
     */
    int b = 8;             //定义一个基本数据类型为int的变量b,初始值为8
    int *p1 = &b;          //定义一个指针变量为p1的指针,指向为b的地址
    int **p2 = &p1;        //定义一个指针变量为p2的指针,指向为p1的地址
    **p2 = 18;           //通过指针p2来改变b存储空间中存储的数据
    printf("%d=%d\n", b, **p2);
    
    //任何指针变量的大小都是占用8个字节
    //即使是这样,但是还是要求int类型指针应该指向int类型的数据,这是为了赋值和取值的时候不会造成数据混乱。
    char e = 2;
    char d = 1;    //这是char
    char *p5 = &e;
    int *p6 = &d;    //这个指针类型为int
    printf("%d,%d\n", *p5, *p6);     //通过查看,可以知道,如果数据类型不相同,则会造成数据紊乱。
    int *p3;
    char *p4;
    printf("%zd,%zd\n",sizeof(p3), sizeof(p4));
    return 0;
}
 

                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值