指针
简单的理解
<u>指针就是变量的地址</u>
指针变量的定义
int* p;
double* p;
char* p;
指针变量的地址
int a;
int* p=&a;
//或者也可以这样写
int a;
int* p;
p=&a;
注意
需要注意的是:
int*
是指针变量类型,后面的p
才是指针变量 用来储存地址,因此地址&a是赋值给p
而不是*p
指正与数组
#include<stdio.h>
int main(){
int a[10]={1,2,3,6,3,3,0};
int* p=a;
printf("%d",*p);
return 0;
}
output
1
指针作为参数
#include<stdio.h>
void swap(int *a,int *b);
void main(){
int str[10];
int i,j;
printf("请输入十个数字并且以空格分开\n例如这样1 2 3 6 5 2 3 5 4 32 2\n");
for(i=0;i<10;i++){
scanf("%d",&str[i]);
}
for(i=0;i<10;i++){
for(j=i+1;j<10;j++){
if(str[i]>str[j]){
swap(&str[i],&str[j]);
}
}
}
printf(" \n");
for(i=0;i<10;i++){
printf("%d ",str[i]);
}
printf("\n");
}
void swap(int *a,int *b){
int c;
c=*a;
*a=*b;
*b=c;
}
引用
<u>对引用变量的操作就是对原变量的操作</u>
#include<stdio.h>
void change(int x){
x=1;
}
int main(){
int x=2;
change(x);
printf("%d",x);
return 0;
}
//output:2
#include<stdio.h>
void change(int &x){
x=1;
}
int main(){
int x=2;
change(x);
printf("%d",x);
return 0;
}
//output:1