指针学习

1、 指针是什么?

指针表示变量的地址,例如ptr=& pooh,其中&取地址符取出pooh变量的地址然后赋值给ptr,此时ptr可看成指针变量,指向pooh变量

2、指针变量的声明和赋值

int *pi,

char *pc,

float *pf

3、取地址运算符 和 解引用运算符

(1)取地址运算符&取出变量地址,例如:

#include <stdio.h>
int main(void)
{
int age;
printf("Please input your age");
scanf("%d",&age);
printf("%d",age);
return 0;
}

  (2)取地址运算符&取出变量地址,例如:

#include <stdio.h>
int main(void)
{
int age;
int *pointer1;
printf("Please input your age\n");
scanf("%d", &age);
pointer1 = &age;
printf("%d", *pointer1);
return 0;
}

4. 利用指针实现交换函数的问题(形参地址传递)

#include <stdio.h>
void intExchange(int* m, int* n);
int main(void)
{
int x = 10;
int y = 20;
int* pointer1 = &x;
int* pointer2 = &y;
intExchange(pointer1, pointer2);
printf("%d\n%d\n", *pointer1, *pointer2);
}
void intExchange(int* m, int* n)
{
int temp;
temp = *m;
*m = *n;
*n = temp;
}

 

5、数组和指针

(1)数组名是数组首元素的地址,例如数组array的数组名 array==array[0]

(2)在C语言中,指针+1表示的是增加指针类型对应的字节数

#include <stdio.h>
int main(void)
{
int array[10];
printf("array数组的首元素地址为:%p\n", array); //数组首元素的地址值
printf("array数组的首元素地址为:%p\n", &array[0]); //数组首元素的地址值
printf("array数组的第二个元素的地址为 :%p\n", array + 1); //数组第二个元素的地址值
printf("array数组的第二个元素的地址为 :%p\n", &array[1]); //数组第二个元素的地址值
}

(3)数组中,指针的解引用符

*(array+1)=array[1] //表示第二个数组元素的值
*array + 1 //表示第一个数组元素值+1

 

6、函数,数组和指针

#include <stdio.h>
int sum(int *num, int n); //声明sum函数时,括号内声明数组指针形参和变量n
int main(void)
{
int array[10] = {0,1,2,3,4,5,6,7,8,9};
int total;
total = sum(array, 10); //调用sum函数时,括号内给出数组首元素地址,和常量
printf("数组各元素和为%d", total);
}
int sum(int* array, int n)
{
int i=0;
int total=0;
for (i == 0; i < n; i++)
{
total = total + array[i];
}
return total;
}

 

 7. 指针和字符串

#include <stdio.h>
int main() {
const char* mesg = "Think different";
const char* copy;
copy = mesg;
printf("%d\n", *mesg);//表示指针指向的内容
printf("%d\n", *copy);
printf("%d\n\n", 'T');
printf("%p\n", mesg);//表示指针的值
printf("%p\n\n", copy);
printf("%p\n", &mesg);//表示指针的存储地址
printf("%p\n", &copy);
}

 

posted @   轩~邈  阅读(42)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示