c语言指针详解最简单的指针问题

c语言指针详解的指针的存在使得c語言指针详解对硬件的操控以及灵活性得到了极大的提高。

但是指针的使用存在着很多难点问题

//这里的函数是指针做参数的例子,要知道这个特性可以弥补c语言指针详解只能有一个返回值的特性 //main()函数必须要返回一个数字

这里我们先定义两个整型的变量a,b

然后再定义一个臨时的指针变量,用来存储中间变量

然后将b的变量的内存地址赋值给t注意这里 t  代表的是内存地址

然后把b的值给a,再用b接受t地址所存储的变量, 注意这里的*t是指t这个地址所指的那个变量

里来说a其实是这个数组的第一个元素的a[0]的指针

所以数组变量本身就是表达地址,所以

4 但是數组的单元表达的是变量需要用&取地址 7 []运算符可以对数组做,也可以对指针做:

const 这个修饰符的作用就是表明一个变量是指定的值不能改變了

6 // q = &ls1; 这句是不能通过编译的因为这个指针是不能指向其他位置的地址 7 //执行成功说明这里的指针变量是可以被改变的 10 //然后我们来看另外一種情况 15 //*T =15;这里是不能通过编译的,因为这个指针指向的位置存储的变量是不能赋值改变的 18 //关键在于这里的const是在*的前面还是后面决定的
6 这里峩们传入了一个指针,但是在函数里是不能改变这个指针所指向的值的

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).


應该注意的2点是:1.给指针只能传地址,不能传值.否则要做强制类型转换.
2.在做类型转换和赋值时候,应该注意赋值的类型匹配.

我要回帖

更多关于 c语言指针详解 的文章

 

随机推荐