谈一般变量与指针变量的区别
一. 首先我们要知道变量访问有两种方式
1 . 变量名 : 例如 int a = 10 i+j = 10
2 . 地址 :顾名思义它表示的是一个变量的地址,就好比你的名字是个变量,我可以通过名字来追踪到你,但我也可以 通过你家的地址去找到你,对余c语言的地址也是一样的, 还有就是我们要知道 指针 = 地址。
二. 我们话也不多说,直接在编程中体验更好一点
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a = 10; //整型变量 , 存放的是整数
//定义之后可以单独拿出来赋值,例如:
a = 123; //这时a 的值便不再为10 ,而是123 ,一般变量都是可这般赋值
char c = 'c';
int b[3] = {1,2,3};
int* p; //指针变量,存放的是地址 此时* 是一个标识符
p = &a; //给指针变量赋值 ,& 是取地址符号 例如:
printf("a的地址为: %p \n",&a); // & 取地址, 取变量名所代表的变量的内存地址
//这里我们要注意一下 /* *p = &a; */ 这么写是错误的!!!!!!!!!
// * 只有在定义一个指针变量时侯,才是指针的标识符
// 其他情况,都是一个运算符, 也就是说此时的 * 代表的是一个运算符,跟 +-*/运算类似
// 该运算符的功能是, 取出内存地址中数据的值(取内容)例如
printf("通过地址来获取a的值 a= %d \n",*(&a)); //这时 * 便是取出a 地址中的数据的值
/*
我们先找出3个变量的相同点与不同点
1.相同点
a c b[] 都是变量
2 不同点
变量的类型不同
a = 整数型
c = 字符型
b[] = 数组
*/
/* 那么接下来我们会问
问:什么变量能存放地址?
答:指针变量存放的是地址
问:怎么才能定义一个指针变量?
答:
例如 int *p; 或 int* p;
*/
return 0;
}