黑马程序员技术交流社区
标题:
c语言学习笔记之指针的基本用法
[打印本页]
作者:
CherryQueen
时间:
2015-9-29 22:32
标题:
c语言学习笔记之指针的基本用法
指针的定义:
严格上来讲,指针有两层含义,一是指一种保存地址的变量。二是指一种数据类型,是一种存储地址的特殊的数据类型,用来表示一个变量或者常量在内存中的地址。如果在内存中有一块空间,存放了变量a的地址,那么这块存放过了a的地址的 内存空间所对应的内容就是a的指针。
指针的作用:
用于储存某一个地址,从而可以通过地址直接对该地址内存空间中的数据进行操作。
指针的用法:
定义:类型 *指针名;如int *p;表示定义一个能存int类型地址的指针变量,名字叫p
赋值:指针变量名=指针(地址) 注意:指针获取方法(&变量名)
指针的特点:
1:指针本真也有地址:指针定义之后,自身地址不变,但里面存的地址可以变化。
2:&p表示指针自身地址,而p表示指针存的地址,*p表示指针所存地址的内存空间。
3:指针不初始化赋值不要使用,未赋值前地址是随机的,未赋值不可以用 *p;
4:*修饰什么,就代表是什么的指针,判断原则:先确定变量的类型(根据符号优先级)
5:指针是什么类型的,就应该存什么类型的地址,否则*p取对应内存空间的指会出错。
#include <stdio.h>
void test1(int a);
void test2(int *a);
int main()
{
int a=5;
printf("a=%d\n",a);
test1(a);
printf("after a=%d\n",a);
int *p=&a;
test2(p);
printf("a=%d\n",a);
return 0;
}
复制代码
//传给函数的是一个值,函数内部对变量的修改不影响外部变量,外部变量的值不变
void test1(int a)
{
a=a+10;
}
复制代码
/*
传给函数的是外部变量的地址,那么函数内部就会根据地址找到外部的变量,对它进行操作
函数内部对变量的修改就是对外部变量的修改
*/
void test2(int *a)
{
*a=*a+10;
}
复制代码
作者:
wxd123
时间:
2015-10-6 21:22
谢谢楼主分享,赞一个
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2