一、计算机中的内存
内存是由按顺序编号的一系列存储单元组成的,在内存中,每个存储单元都由唯一的地址,通过地址可以方便地在内存单元中存储信息。内存中的数据要靠供电来维持,当计算机关机或意外断电时,其中的所有数据就永久地消失了。内存地址是连续的,相邻内存单元间的地址差1,可以把内存看成一个平坦连续的一维空间。
二、指针变量
专门存放变量地址的变量叫指针变量
三、课后作业
#include <stdio.h> /* 输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。 */ void MAX(int *p,int a[10]); void MIN(int *p,int a[10]); int main() { int a[10]; int i; printf("请输入七个数:\n"); for(i=0;i<7;i++) scanf("%d",&a[i]); int *p=NULL; MAX( p , a ); MIN( p , a ); for(i=0;i<7;i++) printf("%d ",a[i]); return 0; } void MAX(int *p,int a[10]) { int i,temp,max; p=a; temp=a[0]; for(i=0;a[i]!='\0';i++) { if(a[i]>*p) { max=i; *p=a[i]; } } a[max]=temp; } void MIN(int *p,int a[10]) { int i,j=-1,temp,min,frist; p=a; frist=a[0]; for(i=0;a[i]!='\0';i++) { if(a[i]<frist) { frist=a[i]; min=i; } j++; *(p+j); } temp=*(p+j); *(p+j)=a[min]; a[min]=temp; }
#include <stdio.h> #include <string.h> #define N 32 /* 输入一行字符,运用指针找出其中的大写字母,空格,数字,及其他字符的个数。 */ int main() { char str[N]; int i; char *p=NULL; int a=0,b=0,c=0,d=0; gets(str); int len=strlen(str); p=str; for(i=0;i<len;i++) { if( *(p+i)>='A' && *(p+i)<='Z' ) { a++; } else if(*(p+i)==' ') { b++; } else if(*(p+i)>='0' && *(p+i)<='9') { c++; } else { d++; } } printf("大写字母%d 个,空格%d 个,数字%d 个,及其他字符%d 个",a,b,c,d); return 0; }
#include <stdio.h> /* 定义 3 个整数及整数指针,仅用指针方法按由小到大的顺序输出。 */ void fun(int *p1,int *p2, int *p3); int main() { int a=10,b=5,c=1; int *p1=&a,*p2=&b,*p3=&c; fun(p1,p2,p3); // printf("%d %d %d",a,b,c); return 0; } void fun(int *p1,int *p2, int *p3) { int *temp; if(p1>p2) { temp=p1; p1=p2; p2=temp; } if(p1>p3) { temp=p1; p1=p3; p3=temp; } if(p2>p3) { temp=p2; p2=p3; p3=temp; } printf("%d %d %d",*p1,*p2,*p3); }