www.gsyw.net > C语言指针问题

C语言指针问题

p是指向整型变量的指针;举个例子:int *p; p=&m; 则*p=m;即*p和m是等价的;p指向m;

*p++;编译器将先执行++,也就是将地址加1,在执行*来取值,这样取到的是一个无意义的值,(*p)++;用括号提醒编译器先执行*取值,取到值以后,在对这个值加1 总的来说就是不加括号,++运算符作用到指针上,加了之后作用到指针所指的值上 至于int **p是指,p是一个指向指针的指针,比如内存单元的值是50,地址是100,我们把这个地址100存到一个内存单元,该单元的地址是1000,这个1000就是指向指针的指针,我们取值的时候就先对地址1000取值,得到100,再对100取值,得到50

主要是由于字符串指针我们使用的是 %s ,而后者你用的是%d使用%s打印时,编译器会从当前的指针地址一直往下打印直到遇到 \0结束而我们用%d的话,就答应一个u32的长度

你语法都还没明白呢. int a=1, *p =&a;//对整型指针p(地址变量)赋初始为变量a的地址 printf("%d", a); scanf("%d", p);//通过地址p,写其(&a)指向的内存存储单元的内容 printf("a的值=%d, a的地址=%o\t指针p的值=%o, 指针p的地址=%o, 指针p的指向=%d\n", a, &a, p, &p, *p);

static int *px=&x 表示的是你在定义指针的时候给他赋初始值,初始值为存放变量x的内存地址static int *pxpx=&x表示你在定义了一个指针后给其赋初始值,此时*px表示间接引用,表示他所指向的地址中所存放的变量值

#include<stdio.h>int main (){ int a[3][4]={{1,3,5,7},{9,11,13,15},{17,19,21,23}}; printf("%d \n",a[2][1]); //输出为第3行第2列的元素. 19 printf("%d \n",(a[1])); //输出为第二列第一个元素的地址,也可以说是第二列的首地址,假设数组的首地址

此处s是一个指向char*(字符指针)的指针.*s是s所指向的指针的值(一个内存地址),**s是s所指向的指针所指向的字符的值.&s是取得s变量在内存中的地址.

//关于C语言指针问题:1.编写一个C语言程序,用于接收数组的值,//并通过指向数组的指针将它以左右反转的次序输出,要求用指向数组的指针实现.#include<stdio.h>main(){//从键盘输入并保存到数组str中int str[100];scanf("%d",str);int len=

网站地图

All rights reserved Powered by www.gsyw.net

copyright ©right 2010-2021。
www.gsyw.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com