c语言指针详解的指针的存在使得c語言指针详解对硬件的操控以及灵活性得到了极大的提高。
但是指针的使用存在着很多难点问题
这里我们先定义两个整型的变量a,b
然后再定义一个臨时的指针变量,用来存储中间变量
然后将b的变量的内存地址赋值给t注意这里 t 代表的是内存地址
然后把b的值给a,再用b接受t地址所存储的变量, 注意这里的*t是指t这个地址所指的那个变量
里来说a其实是这个数组的第一个元素的a[0]的指针
所以数组变量本身就是表达地址,所以
const 这个修饰符的作用就是表明一个变量是指定的值不能改變了
void*表示不知道指向什么东西的指针
指针变量的大小是相同的但是,指针是有类型的差别
1、需要传入较大的数据的时候用做参数 2、传入数组后对数组做操作 3、函数返回的结果不止一个的时候可以用指针带出(c只能return一个变量或者值) 需要要用函数来修改不止一个变量
test.c:21: 警告: 赋值时将指针赋给整数未作类型转换
test.c:22: 警告: 赋值时将指针赋给整数,未作类型转换
test.c:23: 警告: 赋值时将指针赋给整数未作类型转换
test.c:24: 警告: 赋值时将指针赋给整数,未作类型转换
test.c:25: 警告: 赋值时将指针赋给整数未作类型转换
虽然只是警报,并且在linux下面也可以运行的很好.但是既然警告了.还是值得讨论下.
如果有哪位知道.可否回复告诉我.谢谢~
关于这个问题,我问了寝室的小丁.经过他的修改.程序已经不报警告了.
在字模数组的首地址赋值方面用了强淛转换为int.在函数调用方面.因为子函数中要求到输入为指针,所以在前面的调用时候,不能单纯的写set[i].而是传指针过去.(uchar *)的强制类型转换是为了配合(uchar *p).