<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;
}
c语言指针基本使用
最新推荐文章于 2024-03-07 22:26:51 发布